SQL Server 插入数据报错:不能将值 NULL 插入列 'id',解决方法:设置自增主键

在使用 SQL Server 创建数据库表时,如果将某一列设为主键,并且该主键不允许为空值,那么在插入数据时就必须为该主键提供一个值。如果试图插入空值,就会收到类似 '不能将值 NULL 插入列 'id',表 '...'' 的错误信息。

问题原因:

出现这个错误的原因是数据库表中 'id' 列被设置为主键,并且不允许为空值。这意味着每一行数据都必须有一个唯一的 'id' 值,而您在插入数据时没有提供该值。

解决方法:

最常见的解决方法是将 'id' 列设置为自增长列。自增长列会在每次插入新数据时自动生成一个新的唯一值,无需手动指定。

示例:

假设您创建了一个名为 'personal_info' 的表,结构如下:sqlCREATE TABLE personal_info ( id INT PRIMARY KEY, name VARCHAR(50), gender VARCHAR(10), birthdate DATE, id_number VARCHAR(20), phone VARCHAR(20), email VARCHAR(50));

**将 'id' 列设置为自增列:**sqlALTER TABLE personal_info ALTER COLUMN id INT IDENTITY(1,1);

上述代码将 'id' 列修改为自增列,从1开始,每次递增1。

**插入数据时省略 'id' 列:**sqlINSERT INTO personal_info (name, gender, birthdate, id_number, phone, email) VALUES ('张三', '男', '2000-01-01', '123456789012345678', '12345678901', 'zhangsan@example.com');

这样就可以成功插入数据,数据库会自动为 'id' 列分配一个唯一的自增值。

总结:

将主键设置为自增列是解决 '不能将值 NULL 插入列 'id'' 错误的常用方法,可以简化数据插入操作,并确保每个主键值的唯一性。

SQL Server 插入数据报错:不能将值 NULL 插入列 'id',解决方法:设置自增主键

原文地址: https://www.cveoy.top/t/topic/fYsT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录