我有一个 MySQL 表,其中包含两个字段:a (int) 和 b (string) 使用 InnoDB 引擎。
我想对其进行结构化,以便特定的 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
但没有运气。我有错误的表结构吗?