gpt4 book ai didi

MySQL 键约束

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

我有一个 MySQL 表,其中包含两个字段:使用 InnoDB 引擎的 a (int) 和 b (string)。

我想构造它,以便 b 的特定值可以在表中出现任意次数,但每次出现时它必须始终与相同的 a 值一起出现,即假设我的表如下所示:

(a,b)
(1,'foo')
(2,'bar')
(2,'bar')
(2,'baz')

我应该能够成功地将 (1,'foo'), (2,'bar') 甚至 (2,'qux') 插入到表中,但是插入 (2,'foo'), ( 1,'bar') 或 (1,'baz') 应该失败,因为无论何时 b 的那些字符串值出现,它们都应该始终与 a 的相同值一起出现。

有什么想法可以有效地做到这一点吗?我一直在玩交易和 SELECT ... FOR UPDATE 但没有运气。我的表结构有误吗?

最佳答案

我最终使用了如下语句:

 INSERT INTO mytable(`a`,`b`) SELECT 1,'foo' FROM dual WHERE NOT EXISTS
(SELECT * FROM mytable WHERE a != 1 AND b = 'foo')

如果嵌套选择不返回任何行,这将只插入一行。

关于MySQL 键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6045475/

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