唯一索引不是基于单词顺序?

时间:2011-10-12 08:00:45

标签: mysql unique

是否可以在varchar字段上使用不基于单词顺序的mysql UNIQUE索引?

我的意思是如果有一行key1 key2,我尝试插入key2 key1 mysql会抛出错误。

3 个答案:

答案 0 :(得分:0)

如果您将索引设置为UNIQUE,则无法两次输入相同的数据 - 数字,单词或其他。

如果您希望以其他方式实现某些目标,则必须在数据库中设置一个新的非唯一字段,然后您就可以使用外部代码和查询(PHP,C#)来实现它。

答案 1 :(得分:0)

您可以通过在插入之前和更新触发器之前添加到表中来实现此效果;他们可以在插入/更新之前检查是否存在反转字段的行(如果不存在),或者如果存在则强制执行错误。

有关详细信息,请参阅here

答案 2 :(得分:0)

创建一个触发器来执行此操作。

CREATE TRIGGER trigger_name BEFORE INSERT ON table_name
FOR EACH ROW
BEGIN
   IF ((SELECT COUNT(*) FROM table WHERE col2=NEW.col1 OR col1=NEW.col2) <> 0)
   THEN
     CALL this_procedure_does_not_exist();
   END IF
END