【发布时间】:2014-03-11 16:12:56
【问题描述】:
我想更改表上的整数列以添加检查约束以防止值为零或正数。例如:
CREATE TABLE example (id INTEGER)
ALTER TABLE example ADD CONSTRAINT chk_negID CHECK (id<0)
MySQL 很高兴地遵守这些,但随后允许以下内容:
INSERT INTO example VALUES (-1);
INSERT INTO example VALUES (1);
我的约束实际上没有被添加吗?有没有办法列出在创建表后添加到表中的约束?
【问题讨论】:
-
这似乎需要在应用层处理,因为 MySQL 不支持此功能。
-
MySQL 中没有
CHECK约束。您需要改为编写触发器。 -
@AgRizzo:如果这是从触发器终止执行的好方法。
-
@zerkms - 我编辑我的评论更清楚
-
看看这个问题和答案stackoverflow.com/a/7189396/2587724 - 并翻转答案的逻辑
标签: mysql