MySQL 主键不能为 NULL(空值),这是关系型数据库的基本约束之一。
如果你尝试以下操作会失败:
-- 创建表时指定可为空的主键(会报错)
CREATE TABLE example (
id INT NULL PRIMARY KEY,
name VARCHAR(100)
);
-- 插入NULL值到主键列(会报错)
INSERT INTO example (id, name) VALUES (NULL, 'test');
如果需要表示"无值"的情况,可以考虑:
在MySQL中,AUTO_INCREMENT
主键列在插入时可以显式指定NULL值,但这实际上是让MySQL自动生成值,而不是真的插入NULL:
-- 这会正常工作,id会自动生成
INSERT INTO example (id, name) VALUES (NULL, 'test');
但这只是语法上的例外,实际存储的值不会是NULL。