MySQL:如果使用`AUTO_INCREMENT`,为什么用`NOT NULL'定义`ID`列?

时间:2017-11-29 13:10:41

标签: mysql

我正在读某处,添加AUTO_INCREMENT将允许id列自动生成从1开始的序号。但是,在这种情况下,似乎没有必要定义{{ 1}}和NOT NULL。在创建表格时,为什么我仍然会使用UNIQUENOT NULL在线看到很多示例?

2 个答案:

答案 0 :(得分:0)

Per the documentation,如果将null值分配给定义为非null的auto_id,则它将使用下一个顺序值替换null。由于ID可能是您的主键(或键的一部分),因此它不应该采用空值。

另外,per this example,如果你没有指定它应该是非null,MySQL将为你提供。

答案 1 :(得分:0)

好的,在重新阅读文档后,似乎如果定义了NOT NULL ...当插入值时,可以使用值NULL自动分配下一个序列号。如果未定义NOT NULL,则可以仅使用值0来分配下一个序列号。此外,应该注意的是,UNIQUE不需要定义,因为ID通常与PRIMARY KEY一起使用,并且实现了相同的目标。