gpt4 book ai didi

Mysql - 通过查询更新表。重复 key 更新不起作用

转载 作者:行者123 更新时间:2023-11-28 23:12:03 26 4
gpt4 key购买 nike

任务是使用来自另外两个表的查询的值来更新“mg_brands”表。

表格是:

mg_brands | mg_term_taxonomy  |mg_terms
----------|-------------------|--------------
term_id | term_taxonomy_id |term_id
name | term_id |name
| taxonomies |

基本上,它是这样工作的:mg_terms 包含具有由“字段 mg_term_taxonomy.taxonomies”标识的不同类别的记录。

我想提取具有分类“品牌”的记录并将该数据传输到“mg_brands”。查询应该能够检查现有记录更新它们或插入新记录(如果不存在)。

为此,我正在使用下面报告的查询,但它会创建新记录,复制它们而不是执行我已经说过的操作。

INSERT into mg_brands

SELECT mg_terms.term_id, mg_terms.name
FROM mg_terms
JOIN mg_term_taxonomy
ON mg_term_taxonomy.term_id=mg_terms.term_id
WHERE mg_term_taxonomy.taxonomy="product_brand"

ON DUPLICATE KEY UPDATE
mg_brands.term_id = mg_terms.term_id,
mg_brands.name= mg_terms.name

有什么建议说明为什么 ON DUPLICATE KEY UPDATE 没有发挥作用吗?

谢谢

最佳答案

您需要将 term_id 设置为 UNIQUE KEY,这样 ON DUPLICATE 才会起作用。问题是现在你没有任何重复,因为你没有 term_id 作为 PRIMARY KEY

关于Mysql - 通过查询更新表。重复 key 更新不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45552009/

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