gpt4 book ai didi

MySQL 强制对两列进行数据检查的约束

转载 作者:行者123 更新时间:2023-11-29 11:07:20 25 4
gpt4 key购买 nike

我在 Mysql 中有一个包含两列的 innoDB 表:

CREATE TABLE mytable (
`id_1` mediumint(8) unsigned NOT NULL,
`id_2` mediumint(8) unsigned NOT NULL
) ENGINE=InnoDB;

我想强制检查 INSERT 操作:id_1 必须小于 id_2所以我尝试了这个,但没有成功:

ALTER TABLE mytable ADD CONSTRAINT mycheck CHECK (id_1 < id_2)

这可能吗?我做错了什么?谢谢!

最佳答案

不幸的是,MySQL 不支持CHECK CONSTRAINT,因此您的ALTER 语句将没有任何用处。根据 MySQL 文档,它会解析但忽略 CHECK 子句。不过,您可以使用 BEFORE INSERT TRIGGER 获得类似的效果。类似下面的内容

delimiter //
CREATE TRIGGER trig_check BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
IF NEW.id_1 > NEW.id_2 THEN
//Throw Error Probably
END IF;
END
//
delimiter ;

关于MySQL 强制对两列进行数据检查的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41189925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com