gpt4 book ai didi

mysql - 主复合键在两列上都不唯一

转载 作者:行者123 更新时间:2023-11-29 23:18:56 27 4
gpt4 key购买 nike

我有一个包含两个标识列(id 和tenant_id)的表,但是当我执行INSERT ... ON DUPLICATE KEY UPDATE时,我很难强制执行数据完整性。

>

我有两个要求。

  1. id 列必须始终是唯一的
  2. idtenant_id 的组合应始终是唯一的

架构

|id        |int     |AUTO_INCREMENT |PRIMARY
|tenant_id |int | |PRIMARY
|name |varchar |

数据

|id    |tenant_id  |name
------------------------------
|1 |2 |Some name
|2 |1 |Other name
|3 |2 |Another name

当我在 idtenant_id 之间定义复合主键并运行 INSERT ... ON DUPLICATE KEY UPDATE 时,id 列允许插入重复的 ID。

所以我最终得到

|id    |tenant_id  |name
------------------------------
|1 |1 |NEW DATA
|1 |2 |Some name
|2 |1 |Other name
|3 |2 |Another name

我已经尝试了主索引和唯一索引的大量组合,但我无法让数据遵守列上的自动增量和主键(因此在上面的示例中,“新数据”应该采用新 ID 4)。

最佳答案

那么只有第一个要求真正重要。如果第一列总是不同(唯一),那么与第二列的组合也只能是唯一的。

关于mysql - 主复合键在两列上都不唯一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27518069/

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