sql - 您可以替换或更新SQL约束吗?

标签 sql constraints sql-update

我为名为“grade”的列编写了以下约束:

CONSTRAINT gradeRule CHECK grade IN (‘easy’, ‘moderate’, ‘difficult’),

以后是否可以将gradeRule更新为其他值?例如,可以将“中等”和“困难”更改为“中等”和“困难”。

谢谢

最佳答案

您可以删除现有约束,并使用NOCHECK选项添加新约束。即使表中的数据违反了约束,这也允许您添加约束。但是,这样做的问题在于,如果不先使现有记录通过约束,就无法更新现有记录。

ALTER TABLE SomeTable DROP CONSTRAINT gradeRule
GO
ALTER TABLE SomeTable ADD CONSTRAINT gradeRule ... WITH NOCHECK
GO

尽管这是可行的,但通常不建议这样做,因为将来数据更新可能会带来问题。

关于sql - 您可以替换或更新SQL约束吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/861146/

相关文章:

sql - 在父表和子表之间引入一个新表

sql - T-SQL//如何将北坐标/东坐标转换为纬度/经度?

ios - Xcode 6 和约束 - 变灰的等宽选项

sql-server - 检查约束 – 仅当另一列为 true 时才允许一列为 true

php - 如何同时更新3个表4个id字段?

即使给出了不同的 where 子句,MySQL 触发器也会更新所有行

MYSQL:重复键更新不起作用?

php - 使用 PHP 打印条件 COUNT 查询

mysql - 查找一列不同的 "duplicate"行

ios - Swift:删除影响或 Hook UIView 的约束?