文章摘要
文章介绍了如何通过SQL语句实现数据迁移操作,重点解决多表和单表数据的迁移问题。文章详细描述了以下步骤:对于多数据表,采用多条INSERT语句将数据转移至目标表并删除原数据,同时更新索引表以标记已处理的数据;对于单表数据,同样使用INSERT、DELETE和UPDATE语句完成迁移;文章还特别提到处理重复数据的方法,即保留一个有用的记录并清除冗余数据,使用NOT EXISTS语句实现这一目标。整体内容简明扼要,突出数据迁移的具体操作和处理重复数据的逻辑。
自己亲测好用的! 感谢群友 go9go的帮助
多数据表用以下的sql语句
INSERT INTO phome_ecms_news_check SELECT * FROM phome_ecms_news; delete from phome_ecms_news; INSERT INTO phome_ecms_news_check_data SELECT * FROM phome_ecms_news_data_1; INSERT INTO phome_ecms_news_check_data SELECT * FROM phome_ecms_news_data_2; INSERT INTO phome_ecms_news_check_data SELECT * FROM phome_ecms_news_data_3; delete from phome_ecms_news_data_1; delete from phome_ecms_news_data_2; delete from phome_ecms_news_data_3; update `phome_ecms_news_index` set `checked`=0;
单表数据的用以下的sql语句
INSERT INTO phome_ecms_news_check SELECT * FROM phome_ecms_news; delete from phome_ecms_news; INSERT INTO phome_ecms_news_check_data SELECT * FROM phome_ecms_news_data_1; delete from phome_ecms_news_data_1; update `phome_ecms_news_index` set `checked`=0;
处理 重复的保留一个有用 清除另外出错没有用
delete from phome_ecms_news_check where not exists (select * from phome_ecms_news_check_data where phome_ecms_news_check.id = phome_ecms_news_check_data.id); delete from phome_ecms_news_check_data where not exists (select * from phome_ecms_news_check where phome_ecms_news_check_data.id = phome_ecms_news_check.id); delete from phome_ecms_news where exists (select * from phome_ecms_news_check where phome_ecms_news_check.id = phome_ecms_news.id);