MySQL中的NULL DEFAULT NULL和DEFAULT NULL之间的区别?

时间:2012-09-10 07:02:26

标签: mysql sql create-table

最近我在MySQL遇到了一个新问题。我正打算用

创建一个新表

col1 TIMESTAMP DEFAULT NULL

(即具有默认NULL值的列),但在创建时给出了错误:

  

的默认值无效

但是当我尝试col1 TIMESTAMP NULL DEFAULT NULL时,该表已经创建了。

我想知道上述两种语法之间的区别。在列中的一些插入NULL值中,我也更早地遇到了这个问题。

任何人都可以解释这个问题的原因,比如特定于版本的问题还是MySQL的其他问题?

1 个答案:

答案 0 :(得分:11)

第一个NULL表示该列可以为空,即接受NULL。第二个NULLDEFAULT之后)是默认值。

如果您只有默认值,但使列拒绝为空,则无法使用该默认值。

(但我的印象是,如果您既未指定NULL也不指定NOT NULL该列可以为空,那么您看到的内容有点令人困惑。)