我想知道如何在表中插入/更新行。
我有两个表,real\u table和temp\u table,temp\u table保存了我想要更新real\u table的所有数据。但是,其中一些行不存在于real\表中。所以我想运行一个命令,基本上插入一行如果它不存在,如果它确实存在,用新的值更新它。
我要更新的主要内容是 value
列。以下是我迄今为止的尝试:
INSERT INTO `real_table`(value_id, entity_type_id, attribute_id, store_id, entity_id, value)
FROM temp_table
VALUES (value_id, entity_type_id, attribute_id, store_id, entity_id, value)
ON DUPLICATE UPDATE
value = temp_table.value
但我有个错误
# 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM temp_table VALUES (value_id, entity_type_id, attribute_id, store_id, entit' at line 2
2条答案
按热度按时间mbzjlibv1#
试试这个:
INSERT INTO real_table (value_id, entity_type_id, attribute_id, store_id, entity_id, value) SELECT temp_table VALUES (value_id, entity_type_id, attribute_id, store_id, entity_id, value)
fafcakar2#
您需要使用select更正insert的语法
确保定义了唯一索引,以便在重复密钥更新时利用