gpt4 book ai didi

mysql - 禁止 mysql 中第一个值之后的任何值组合

转载 作者:行者123 更新时间:2023-11-29 20:37:00 27 4
gpt4 key购买 nike

我在 Mysql 中有一个包含 3 列的关系表

  1. ID(主键和自动增量)
  2. Ref_id1(表 1 中的引用 ID)
  3. Ref_id2(也来自表 1 的引用 ID)

如何在数据库级别禁止 Ref_id1 和 Ref_id2 的任何对组合重新出现。

编辑:

例如:在我插入这样的行后

id Ref_id1 Ref_id2
1 1 2

我想禁止任何其他具有同一对 Ref_id1 和 Ref_id2 的行(UNIQUE INDEX 可以解决这个问题)AND 任何具有反转对的行

Ref_id1 Ref_id2
2 1

PS。抱歉,代码很丑,我是社区新手,无法正确使用这些工具

编辑2:

我的问题与提出的重复问题不同,因为我希望能够限制两个插入

配对1:

Ref_id1 Ref_id2
1 2

并且

配对2:

Ref_id1 Ref_id2
2 1

在我最初插入之后。

编辑3:

如果这有帮助:Ref_id1 和 Ref_id2 都是来自外部表同一列的外键

最佳答案

您需要一个唯一键约束。

在创建表语法中:

CREATE TABLE my_table(
id bigint(20) primary key auto_increment,
ref_id1 bigint(20) not null,
ref_id2 bigint(20) not null,
unique key `ref_uniqueness` (ref_id1, ref_id2)
)

或者,如果您的表已存在,请使用alter table:

ALTER TABLE my_table
ADD UNIQUE CONSTRAINT `ref_uniqueness` (ref_id1, ref_id2)

关于mysql - 禁止 mysql 中第一个值之后的任何值组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38761234/

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