如何删除SQL中的DEFAULT约束?附已尝试的操作代码参考
解决方案
你第一条语句的作用是为sale_id字段设置默认值为NULL,第二条就是对应删除该默认值约束的标准语法:
ALTER TABLE product ALTER COLUMN sale_id DROP DEFAULT
如果运行报错,可根据你使用的数据库类型对应调整写法:
- MySQL / MariaDB / PostgreSQL:上述标准写法可直接生效,运行后即可删除
sale_id字段刚刚设置的默认NULL约束 - SQL Server:如果默认约束是系统自动生成的随机名称,需要先查询约束名再删除:
- 执行查询获取约束名:
SELECT name FROM sys.default_constraints WHERE parent_object_id = OBJECT_ID('product') AND parent_column_id = ( SELECT column_id FROM sys.columns WHERE name = 'sale_id' AND object_id = OBJECT_ID('product') )- 替换语句中的约束名执行删除:
ALTER TABLE product DROP CONSTRAINT <你查询到的约束名> - Oracle:需要先查询默认约束名再删除:
- 执行查询获取约束名:
SELECT constraint_name FROM user_cons_columns WHERE table_name = 'PRODUCT' AND column_name = 'SALE_ID' AND constraint_type = 'D'- 替换语句中的约束名执行删除:
ALTER TABLE product DROP CONSTRAINT <你查询到的约束名>
内容的提问来源于stack exchange,提问作者Philip
相关产品推荐
相关产品推荐

