gpt4 book ai didi

MySQL使两列唯一

转载 作者:行者123 更新时间:2023-11-29 02:06:52 25 4
gpt4 key购买 nike

不知道这对 MySQL 是否可行,因为我知道它不支持检查约束,但我想要的是使两列唯一。在你回答之前

ALTER TABLE <table_name> ADD UNIQUE(<col1>, <col2>);

这不是我想要的。我想确保 col1 和 col2 具有唯一值,因此如果它们是 INT,则数字“1”在两列之​​间只能存在一次,这意味着如果 col1 包含“1”,则 col2 不能包含“1”,而“1”可以仅在 col1 中出现一次。希望这是有道理的。

我知道我可以从 php 级别做到这一点,但现在有很多代码,如果我遗漏了一个地方,我不想破坏数据完整性;我宁愿从数据库中抛出一个错误。我遇到的一些想法是使用触发器。如果有人能给我一个使用触发器来完成此操作的示例,那就太好了。

更新

如果您知道我在做什么可能会有所帮助,那么也许您可以提出一个更好的方法:

我有两个字段,email 和 new_email。当有人更改他们的电子邮件地址时,我将其存储到 new_email 字段中,直到接受更改。由于电子邮件是唯一的,因为它被用作他们的登录名,我必须确保电子邮件在两个字段中都是唯一的。

最佳答案

解决方案

  1. 创建一个包含一列 ColumnBoth 的表 MakeColsUnique
  2. ColumnBoth 上创建主键
  3. Col1Col2 到此表的所有值(如果您有重复项,这将失败)
  4. 在 OriginalTable 的 INSERT 或 UPDATE 上添加触发器以将 Col1 和 Col2 的值插入到新表 MakeColsUnique

如果该值已经被插入,插入或更新将失败。

关于MySQL使两列唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4531824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com