如何将带默认约束的列的现有记录更新为默认值?
如何将列的现有记录更新为其默认约束值
嘿,这个需求其实很好实现,大部分主流数据库都提供了简洁的语法来直接引用列的默认约束值,不用你自己去查默认值再手动写进去~
主流数据库通用写法
你不需要写成DEFAULT(col1)这种形式,直接在SET子句里使用DEFAULT关键字就可以引用该列的默认值,完全匹配你想要的场景:
UPDATE table1 SET col1 = DEFAULT WHERE col2 = 'xxx';
执行这条语句后,所有满足col2 = 'xxx'条件的记录,col1都会被更新为它预先设置的默认约束值。
特殊场景:无法直接使用DEFAULT的情况
如果遇到一些老版本数据库不支持直接用DEFAULT的情况,你可以先查询出该列的默认值,再用这个值执行更新。以SQL Server为例,你可以通过系统视图获取默认值:
-- 第一步:查询col1的默认约束值 SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'table1' AND COLUMN_NAME = 'col1'; -- 第二步:用查到的默认值执行更新(假设默认值是'your_default_value') UPDATE table1 SET col1 = 'your_default_value' WHERE col2 = 'xxx';
不过这种方法比较繁琐,优先推荐第一种通用写法,既高效又简洁。
验证更新结果
更新完成后,你可以用以下语句确认是否生效:
SELECT col1 FROM table1 WHERE col2 = 'xxx';
检查返回的结果是否和你设置的默认值一致就可以啦。
内容的提问来源于stack exchange,提问作者zola25
相关产品推荐
相关产品推荐

