如何更新另一个表中不存在行的表

时间:2014-02-05 07:39:05

标签: mysql sql-update

我有两张桌子。两者仍在使用中。但是我要将这些数据从旧表迁移到更新的表。现在的问题是。旧表仍然在当前应用程序中处于活动状态。因此,新数据库需要更新旧数据库。所以我需要比较一个新表来匹配旧表上的当前行。我的想法是找到新表上不存在的内容,然后从旧表中更新它。所以我只能找到列出新表上没有的内容的方法如下:(t1是旧表)

SELECT t1.pic
FROM my_db.car_pix t1
LEFT JOIN my_v2.car_pix t2 ON t2.name = t1.pix_file
WHERE t2.pix_file IS NULL

但我需要使用此查询中找到的结果更新新表。我不敢尝试,因为db仍在使用中。所以请建议我这样做的最好方法。

此致

2 个答案:

答案 0 :(得分:2)

尝试以下SQL:

UPDATE my_db.car_pix t1
LEFT JOIN my_v2.car_pix t2 ON t2.name = t1.pix_file 
SET COLUMN = 'VALUE'
WHERE t2.pix_file IS NULL

答案 1 :(得分:-1)

我根据真实故事得到了自己的解决方案:)

insert into my_v2.car_pix (tent_id,prov_id,pix_file,car_type,pix_date)
select tid,pid,pic,car_type,pix_date 
from my_db.car_pix where not my_db.car_pix.pic='my_v2.car_pix.pix_file'