gpt4 book ai didi

MySQL 值对的唯一键/约束,无论它们位于哪一列

转载 作者:行者123 更新时间:2023-11-29 10:12:24 24 4
gpt4 key购买 nike

如何将唯一键应用于下表和要求?

CREATE TABLE `friends` (
`item_id` VARCHAR(36) NOT NULL,
`friend_id` VARCHAR(36) NOT NULL,
);

这里,item_idfriend_id 都与相同的父字段(外键)相关。 friend_iditem_id按顺序出现也没关系,因为它的意思也是一样的。

例如,如果值 (5, 7) 出现在该行中,则不应接受 (7, 5) 作为新行 - 因为它在逻辑上是重复记录。

现在,如何向该表添加唯一键或一些约束?

最佳答案

保留item_id < friend_id这可以通过 CHECK 约束来完成。这从 (5, 7) 中删除了冗余 (7, 5)。

CHECK (item_id < friend_id)
CONSTRAINT UC_item_friend UNIQUE (item_id, friend_id)

相应地,代码必须小心保持这个顺序。

纯粹主义者可能会反对这种技术,认为应该建立friend_ids和item_ids的子关系。

关于MySQL 值对的唯一键/约束,无论它们位于哪一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50749159/

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