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

如何为数据表列添加默认值并设置非空约束?

给数据表列添加NOT NULL约束的方法

没问题!要给已经设置了默认值的some_timestamp列添加NOT NULL约束,你可以直接执行下面的SQL语句:

ALTER TABLE `db`.`tbl` MODIFY COLUMN `some_timestamp` TIMESTAMP NOT NULL DEFAULT current_timestamp();

或者如果你想分开执行(保留之前的默认值设置,单独添加约束),也可以这么写:

ALTER TABLE `db`.`tbl` MODIFY COLUMN `some_timestamp` TIMESTAMP DEFAULT current_timestamp() NOT NULL;

不过有个关键注意点要提醒你:在添加NOT NULL约束前,必须确保该列中没有已存在的NULL值。如果列里已经有NULL数据,直接执行上面的语句会报错。这种情况下,你需要先把这些NULL值更新为有效内容,比如默认的当前时间:

UPDATE `db`.`tbl` SET `some_timestamp` = current_timestamp() WHERE `some_timestamp` IS NULL;

等更新完所有NULL值后,再运行添加NOT NULL约束的语句就可以正常生效了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 12:29:06