You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SQL将列属性从NOT-NULL改为NULL?排查COLUMNPROPERTY报错

解决SQL列属性修改及可空性查询的问题

嘿,我来帮你搞定这两个SQL相关的问题~

1. 如何把数据库列从NOT-NULL改成NULL状态

核心是用ALTER TABLE语句,但不同数据库的语法细节有点区别:

  • 如果你用的是MySQL/MariaDB:修改时必须指定列的原始数据类型,不然会报错。比如针对你的prefetching_rules表的date_delete列,假设它是DATE类型,语句应该是:
ALTER TABLE prefetching_rules MODIFY COLUMN date_delete DATE NULL;

把DATE换成你列实际的数据类型(比如INT、VARCHAR(100)),加上NULL就表示允许该列存储空值了。

  • 如果是SQL Server:语法更灵活,甚至可以不用重复数据类型(当然指定也没问题):
ALTER TABLE prefetching_rules ALTER COLUMN date_delete DATE NULL;

2. 解决COLUMNPROPERTY函数报错的问题

你碰到的Error Code: 1054是因为COLUMNPROPERTY是SQL Server独有的函数,而你当前使用的是MySQL(从错误码就能判断出来)。在MySQL里,要查询列的可空状态,得查询系统表INFORMATION_SCHEMA.COLUMNS,给你写好适配的语句:

SELECT IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = '你的数据库名称'  -- 记得替换成实际的库名
  AND TABLE_NAME = 'prefetching_rules' 
  AND COLUMN_NAME = 'date_delete';

执行后,IS_NULLABLE字段会返回YES(允许空)或者NO(不允许空),就能清楚看到列的状态啦。

内容的提问来源于stack exchange,提问作者Vikas Mishra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:43:10