无论列中的值是什么,是否有办法使整行都是唯一的?
所以,如果列 a 中有 1,列 b 中有 2,那么如果你将 2 插入到列 a 中,将 1 插入到列 b 中,将会抛出错误。
+---+---+ | a | b | +---+---+ | 1 | 2 | | 2 | 1 | <- 由于上面已经存在,插入时会抛出错误 +---+---+
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你可以使用触发器来强制执行。但是我想不出一种好的方法来使用UNIQUE KEY约束来实现这一点。
如果你改变存储值的方式,使它们位于单个列中,位于附加表的多行中,那么使用UNIQUE KEY来强制唯一性将更容易。
如果你想表示相关的项目:
如果你需要每个成员只出现在一个组中:
定义2个虚拟生成列,分别为最小值和最大值,并在它们上设置唯一约束:
查看演示。
或者,对于MySql 8.0+:
查看演示。