我有这些table
meta_id | post_id | meta_key | meta_value
-----------------------------------------
Incremented | 35 | some_value | 12345
Incremented | 45 | some_value | 22345
Incremented | 32 | other_value | 22345
表\u b
object_id | term_taxonomy_id | term_order
-----------------------------------------
23 | 53 | 0
54 | 65 | 0
我想像这样在表\u b中插入(表\u a.post\u id,'5302',0),所以我只需要表\u a中的post\u id,但是那些具有meta\u key=some\u value和meta\u value>的表可以说是20000,实际上这是一个unix时间戳
桌上有这些道具
PRIMARY object_id, term_taxonomy_id
INDEX term_taxonomy_id
我试过这个问题
INSERT INTO Table_B (object_id,term_taxonomy_id)
SELECT u.post_id , '5302' FROM Table_A u INNER JOIN Table_B o ON u.post_id = o.object_id WHERE u.meta_key = 'some_value' AND u.meta_value < UNIX_TIMESTAMP(NOW())
我得到一个错误:
查询(1062)中出错:键“primary”的条目“4066-5302”重复
3条答案
按热度按时间pwuypxnk1#
您有多个元素,其中object\u id:4066、term\u taxonomy\u id:5302是主键,因此它们不能重复,请考虑更改查询以仅返回唯一值。
insrf1ej2#
主键是什么
Table_B
?检查select查询的结果是否已存在于中
Table_B
的主键列。sqxo8psd3#
可能您已经为这些值插入了一个值(条目“4066-5302”),或者您选择了return more than a row在这种情况下应该使用distinct