mysql INSERT IF NOT EXISTS 实用示例

mysql INSERT IF NOT EXISTS practical sample

我整天都在尝试,但没有任何运气。我想写一个 MySQL 例程(查询)来用另一个 table 的数据填充一个 table。 两个 table 都有唯一的、非空的和主键(列名)并且两个 table 都有(列代码)。 如何在不更新现有数据的情况下将数据从一个 table 复制到另一个?我想忽略 tables.

中存在的行

导出(名称PK)

没有 姓名 代码
1 慈悲 100 119001
2 奥利奥 50 232221
3 果冻 70 331000
4 太阳能 55 411411
---- ------ -------- --------

tb_code(姓名PK)

姓名 代码
太阳能 411411
------ --------
INSERT INTO tb_code (name, code) FROM export (SELECT name, code) WHERE NOT EXISTS

结果应该是

tb_code(姓名PK)

姓名 代码
太阳能 411411
慈悲 119001
奥利奥 232221
果冻 331000
------ --------

你的语法有问题...

INSERT ... SELECT ... FROM ... 不是 INSERT ... FROM ...(没有 SELECT),export 之后的 FROM-less SELECT 子查询完全错位并且EXISTS 运算符需要一个子查询作为操作数——检查其存在(即非空)的集合。

尝试:

INSERT INTO tb_code
            (name,
             code)
            SELECT e.name,
                   e.code
                   FROM export e
                   WHERE NOT EXISTS (SELECT *
                                            FROM tb_code c
                                            WHERE c.name = e.name);

您通常有正确的想法,但可能应该花更多时间研究正确语法的文档。