> Do any databases support CREATE TABLE statement with fields
> having a DEFAULT clause without a NOT NULL?

 Oracle and MySQL do, at least.


[EMAIL PROTECTED] src]$ sqlplus test/test

SQL*Plus: Release 9.2.0.5.0 - Production on Mon Aug 30 00:13:29 2004

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production
With the Partitioning option
JServer Release 9.2.0.5.0 - Production

SQL> CREATE TABLE foo (
  2      bar INTEGER,
  3      baz INTEGER DEFAULT 42
  4  )
  5  /

Table created.

SQL> desc foo;
 Name                                      Null?    Type
 ----------------------------------------- --------
----------------------------
 BAR                                                NUMBER(38)
 BAZ                                                NUMBER(38)

SQL> INSERT INTO foo (bar, baz) VALUES (1, NULL);

1 row created.

SQL> INSERT INTO foo (bar) VALUES (1);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from foo;

       BAR        BAZ
---------- ----------
         1
         1         42





[EMAIL PROTECTED]:~$ mysql -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 4.0.18-max

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> connect test;
Connection id:    7
Current database: test

mysql> CREATE TABLE foo (
    ->     bar INTEGER,
    ->     baz INTEGER DEFAULT 42
    -> );
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO foo (bar, baz) VALUES (1, NULL);
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO foo (bar) VALUES (1);
Query OK, 1 row affected (0.01 sec)

mysql> select * from foo;
+------+------+
| bar  | baz  |
+------+------+
|    1 | NULL |
|    1 |   42 |
+------+------+
2 rows in set (0.00 sec)



-- 
Andy Hassall <[EMAIL PROTECTED]> / Space: disk usage analysis tool
<http://www.andyh.co.uk> / <http://www.andyhsoftware.co.uk/space> 

Reply via email to