我现在正在为我的个人项目开发一个新的 MySQL 数据库(接口(interface) PHPmyadmin),我不知道如何避免同一个表上的两列具有相同的值。所以,我希望我们不能在一条记录中为 2 个不同的列插入相同的值。
例子
TABLE A
id name firstname
1 john Marry => will be possible
2 Marry John => will be possible
3 John John => won't be possible
4 test test => won't be possible
我希望同一记录中的两列不能有相同的值
最佳答案
通常您会为此使用 CHECK 约束。 Bu MySQL 目前不支持它们。它接受输入但忽略它们。
但是你可以使用触发器在某些条件下取消插入/更新
delimiter //
CREATE TRIGGER check_trigger BEFORE INSERT ON your_table
FOR EACH ROW
BEGIN
IF (NEW.name = NEW.firstname) THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'same names error. Insertion canceled';
END IF;
END
//
delimiter ;
您还需要一个触发器来执行相同的更新。
关于mysql - SQL - 避免 1 条记录中的 2 列具有相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30964067/