gpt4 book ai didi

mysql - 从基于其他数据库mysql的表中删除

转载 作者:行者123 更新时间:2023-11-29 09:52:30 25 4
gpt4 key购买 nike

我有两个具有相同结构的 MySQL 数据库。但内容不同:DB1每天都会收到最近10天的最新数据。 DB2 包含有关过去几年的数据。

我想完成以下任务:

第 1 步:如果db1.t1中的column1中存在column1,则从db2.t1中删除

第 2 步:将 db1.t1 中的所有内容插入 db2.t1

最佳答案

Step 1: Delete from db2.t1 if column1 exists in column1 in db1.t1

Step 2: Insert all from db1.t1 into db2.t1

您似乎正在尝试将 db1.t1 中的数据合并db2.t1 中。如果是这样,那么一种解决方案是使用 mysql INSERT ... ON DUPLICATE KEY UPDATE 语句。这使您可以在执行 INSERT 查询时处理重复项:在您的用例中,您似乎可以更新源表中的每一列。

首先,除非column1PRIMARY KEY,否则您需要对column1有一个UNIQUE约束在目标表上(在您的用例中,您最好也将其添加到源表中):

ALTER TABLE db2.t1 ADD CONSTRAINT t1_bk UNIQUE (column1);

然后:

INSERT INTO db2.t1 t_target
SELECT t_source.* FROM db1.t1 t_source
ON DUPLICATE KEY UPDATE
t_target.column2 = t_source.column2,
t_target.column3 = t_source.column3,
...
;

关于mysql - 从基于其他数据库mysql的表中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54561125/

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