SQL - 避免1条记录中的2列具有相同的值

时间:2015-06-21 11:35:52

标签: mysql indexing

我现在正在为我的个人项目开发一个新的MySQL数据库(界面PHPmyadmin),而且我不知道如何避免同一个表上的两列具有相同的值。所以,我希望我们不能在一条记录中为2个不同的列插入相同的值。

实施例

<div class="row-30">
    <div class="small-5 columns">a 5 col</div>
    <div class="small-1 columns end">a 1 col</div>
</div>

我希望同一记录中的两列不能具有相同的值

1 个答案:

答案 0 :(得分:0)

通常你会使用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 ;

您还需要一个触发更新的触发器。