如何在SQL的int类型字段中用null值替代缺失的整数数据
实现int类型列存储NULL值的操作方法
你当前写法的问题是将null用单引号包裹,此时它会被识别为字符串类型,无法匹配int类型列的类型要求,会触发类型不匹配报错。具体操作方案如下:
- 第一步:确认对应int列允许空值
建表时如果没有给列添加NOT NULL约束,默认就是支持存储NULL值的。如果之前建表时加了NOT NULL约束,可以先执行修改列的语句调整属性:ALTER TABLE EmployeeSalary MODIFY COLUMN YearsOfService INT NULL, MODIFY COLUMN Salary INT NULL; - 第二步:插入数据时直接写
NULL,不要加任何引号
修正后的插入语句如下:INSERT INTO EmployeeSalary VALUES (101, 'Manager', 20, 80000), (102, 'Desk Clerk', 5, 30000), (103, 'Maintanence', 10, 60000), (104, 'Sales', NULL, NULL), (105, 'Operations Manager', NULL, NULL); - 如果是已有数据的表需要将部分行的int值替换为NULL,直接使用UPDATE语句即可
示例:将员工ID为104的工龄字段设置为NULLUPDATE EmployeeSalary SET YearsOfService = NULL WHERE EmployeeID = 104;
补充说明:NULL是SQL中专门用来标记空值的特殊标识符,不属于字符串、数值等任何常规数据类型,因此给任意类型的字段赋值为空时,都直接写
NULL即可,不需要加引号包裹。
内容的提问来源于stack exchange,提问作者Steve Wong
相关产品推荐
相关产品推荐

