是否可以在varchar字段上使用不基于单词顺序的mysql UNIQUE索引?
我的意思是如果有一行key1 key2
,我尝试插入key2 key1
mysql会抛出错误。
答案 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