【发布时间】:2011-05-18 13:26:51
【问题描述】:
我有一个 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,但没有运气。我有错误的表结构吗?
【问题讨论】:
-
也许创建一个表,其中的值必须与哪些整数一起使用?
标签: mysql constraints innodb unique-key