此脚本中的null是什么意思?这是否意味着该列可以具有空值,还是意味着该列的默认值为nul?
CREATE TABLE product ( product_nbr int NOT NULL,
product_name varchar(40) NOT NULL,
product_status_code char(10) NOT NULL,
start_date date NULL,
end_date date NULL,
raw_material_cost decimal(12,2) NULL,
primary key (product_nbr)
)
答案 0 :(得分:8)
这意味着该列接受空值。这与您在其他列中看到的NOT NULL
声明正好相反,实际上是默认声明。
对于列的默认值为NULL
,声明为DEFAULT NULL
。当然,这反过来意味着该列接受空值。
答案 1 :(得分:2)
它基本上意味着两者都是因为一列允许NULL并且没有为列设置默认值。如果插入到表中并且未指定值且该列没有默认值,则该值将为null(未定义)。如果该列设置为NOT NULL并且没有默认值,则会收到错误,因为该列不允许为NULL。