next up previous contents index
Next: Column Labels Up: Customizing Queries Previous: Using NULL Values

   
Controlling DEFAULT Values

 As we learned in the previous section, columns not specified in an INSERT  statement are given NULL  values. You can change this assignment by using the DEFAULT keyword. When creating a table, the keyword DEFAULT and a value can be used next to each column type. The value will then be used anytime the column value is not supplied in an INSERT. If no DEFAULT is defined, a NULL  is used for the column. Figure [*] shows a typical use of default values. The default for the timestamp column is actually a call to an internal POSTGRESQL variable that returns the current date and time.    

        test=> CREATE TABLE account (
        test(>         name     CHAR(20), 
        test(>         balance  NUMERIC(16,2) DEFAULT 0,
        test(>         active   CHAR(1) DEFAULT 'Y',
        test(>         created  TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
        test(> );
        CREATE
        test=> INSERT INTO account (name) 
        test-> VALUES ('Federated Builders');
        INSERT 19103 1
        test=> SELECT * FROM account;
                 name         | balance | active |        created         
        ----------------------+---------+--------+------------------------
         Federated Builders   |    0.00 | Y      | 1998-05-30 21:37:48-04
        (1 row)
 


Bruce Momjian
2001-05-09