将INSERT命令转换为UPDATE

Dan*_*lay 11 mysql insert-update

我有两个INSERT命令,对我来说没用,因为两组行 - 已经在表中的行和我作为INSERT命令的行 - 不是分离的.两个命令都插入了大量行和大量值.

因此,如果我想执行这些行,我会得到重复的输入错误.

有没有简单的方法将这些命令"转换"成UPDATE

我知道这听起来很愚蠢,因为为什么我做INSERT的命令,如果我想UPDATE.只是为了使它成为一个明确的场景:另一个开发人员给了我脚本:)

谢谢,丹尼尔

编辑 - 问题解决了

首先,我创建了一个表并用我的INSERT命令填充它,然后我使用以下REPLACE命令:

REPLACE
    INTO table_1
SELECT *
    FROM table_2;
Run Code Online (Sandbox Code Playgroud)

最初可以在以下位置找到:如何合并两个MySQL表?

Asa*_*aph 14

MySQL的REPLACE关键字就是这样做的.只需将INSERT查询中的关键字替换为单词REPLACE,它就应该更新行而不是插入新的行.请注意,它仅在您插入主键或唯一键列时才有效.

  • 这可能会引起问题。使用replace将删除具有重复键的行并写入整个新行。这会弄乱您的索引并增加开销。使用“重复...更新”会保留您的索引更为合适。在您希望重新建立索引的情况下,最好使用“替换”,而不是重复查询以更新表。 (3认同)