我想更改表上的整数列以添加检查约束,以防止值为零或正数。例如:
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);
我的约束实际上没有被添加吗?有没有办法列出在创建表后添加到表中的约束?
答案 0 :(得分:3)
mysql不支持 (即使它接受它作为有效语法)
CHECK子句被解析但被所有存储引擎忽略
答案 1 :(得分:2)
这是可行的,但可能很难调试。这是一个触发器:
DELIMITER $$;
CREATE TRIGGER my_trigger AFTER INSERT ON my_table
FOR EACH ROW
BEGIN
IF(OLD.id <= 0)
THEN
DELETE FROM my_table where id = OLD.id;
END IF;
END