在 mysql 中是否可以使两列唯一,但是如果在另一列中找到插入到一列中的值被认为是重复的?
我试过这个代码,它不起作用:
ALTER TABLE test
ADD UNIQUE myunique ( col1 ,col2 )
编辑:
感谢您的回答,我会找到其他解决方案,但避免使用触发器的解决方案
您UNIQUE ( col1 ,col2 )
会认为两列的“组合”是独一无二的。所以 (a,a) 是允许的,除非已经有另一个 (a,a)。这似乎不是你想要的。
您可以尝试使用触发器,但这相当笨拙。
为什么需要两列?如果这些列代表相同的项目(因为不允许重复),那么一列不是更好吗?如果还有其他差异,您可以为“排名”添加第二列......
你的代码
ALTER TABLE test
ADD UNIQUE myunique ( col1 ,col2 )
不起作用,因为它创建了一个复合的唯一索引,这使得 col1 和 col2 中的重复条目分开。正如你所说,你不需要这个。
我还没有尝试过,但你有没有为你的目的尝试过触发器?