如何为表中的数据库列设置自定义默认值?
尽管我设置了默认值并受到约束,但是在运行时如果输入值是NULL默认值,则不会使用。
为了使默认设置正常工作,您有两个选择:
插入过程中根本不提供列
INSERT INTO t(col1, col2) VALUES (1,2); -- column with default was skipped
使用DEFAULT关键字
INSERT INTO t(col1, col2, col3) VALUES (1,2, DEFAULT);
不幸的是,SQL Server不支持默认NULL上的DEFAULT值:
CREATE TABLE tab (
id INT,
col1 INT DEFAULT ON NULL 2
);
INSERT INTO tab(id, col1) VALUES(1, NULL); -- NULL is overwritten with default
SELECT * FROM tab;
-- 1 2
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。