在ORDERS表中定义INVOICE_ID列,以使此列中不允许使用NULL值。如果用户在插入过程中未为该列提供任何值,则应将SPACES存储在该列中

DB2中的Null被定义为无。这是一个未知值。如果要在任何列中限制NULL值,则应在CREATE TABLE中使用“ NOT NULL”参数定义该列。

“ NOT NULL”将迫使用户输入该列的值。但是,如果我们不想为该列提供任何值,我们还可以放置“ WITH DEFAULT”参数,如果用户没有为“ NOT NULL”列提供任何值,则该参数将允许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列定义为NOT NULL,并且当未为该列提供显式值时,它将默认值作为空格。