考虑下表:
CREATE TABLE `demo` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
`from_val` BIGINT(20) DEFAULT NULL,
`to_val` BIGINT(20) DEFAULT NULL,
PRIMARY KEY (`id`)
);
是否可以创建一个约束来防止在同一个表中存在第二条记录,from_val
或者 to_val
在另一条记录的from_val
和之间to_val
?因此,从一个空表中,第二个查询应该会因约束失败而失败:
INSERT INTO `demo` (`from_val`, `to_val`) VALUES (1,10),(11,20);
INSERT INTO `demo` (`from_val`, `to_val`) VALUES (5,15);
在输入/更新的过程中验证数据是微不足道的,我只是想知道 MySQL 是否可以在 RDBMS 级别强制执行此操作。