在ORDERS表中定义INVOICE_ID列,以使此列中不允许使用NULL值。如果用户在插入过程中未为该列提供任何值,则应将SPACES存储在此列中
DB2中的Null被定义为无。这是一个未知值。如果要在任何列中限制NULL值,则应在CREATETABLE中使用“NOTNULL”参数定义该列。
“NOTNULL”将迫使用户输入该列的值。但是,如果我们不想为该列提供任何值,我们还可以放置“WITHDEFAULT”参数,如果用户没有为“NOTNULL”列提供任何值,则该参数将允许DB2放置缺省值。
例如,如果我们有一个列INVOICE_ID,该列不应该为null,并且,如果用户没有为此列提供任何值,我们希望DB2在该列中插入空格,那么我们将在下面定义该列-
CREATE TABLE ORDERS (ORDER_ID CHAR(15) NOT NULL, ORDER_DATE DATE, INVOICE_ID CHAR(15), NOT NULL WITH DEFAULT ORDER_TOTAL DECIMAL(9,2), TRANSACTION_ID CHAR(15), PRIMARY KEY(ORDER_ID), IN DB4ES01;
列INVOICE_ID用数据类型CHAR定义,并且DB2为CHAR接受的缺省值为空格。因此,在上述情况下,我们将INVOICE_ID列定义为NOTNULL,并且在未为该列提供显式值时,它将默认值作为空格。