【发布时间】:2013-09-15 07:06:40
【问题描述】:
我有一个包含两列(idA 和 idB)的表格。该表将 Bs 分配给 As,如下所示:
A | B
1 | 4
3 | 2
3 | 4
4 | 1
4 | 3 ...
所以一个 A 可以有多个 B,因此出现在多行中。因此,表不能有主键,我不能使用唯一列。
有没有办法只在不存在相等值对的情况下插入新行,全部在一个查询中?
我尝试了 REPLACE INTO 和 INSERT IGNORE INTO,如 here 所述,但两者似乎都只适用于具有主键的表。
【问题讨论】:
-
你试过
ON DUPLICATE KEY UPDATE吗? -
"如果您指定 ON DUPLICATE KEY UPDATE,并且插入的行会导致 UNIQUE 索引或 PRIMARY KEY 中出现重复值,则会执行旧行的更新。" - 不幸的是,我没有主键或唯一索引...
-
为什么你的表根本没有键?