最近新项目,频繁遇到开发环境与正式环境数据不一致问题,开发环境改了一些东西,没有及时做记录,等正式环境上线时,都不知道需要同步那些东西,为了避免程序出现bug,最稳妥的就是只能重新导库,整体导库也做了不少,笔者也总结了一些经验,在这里分享给大家。
1、清空该模式下的所有表、序列、索引,否则导入是可能报错。
# 批量删除模式下的表
SELECT CONCAT('DROP TABLE IF EXISTS ', TABLE_NAME, ';')
FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'XX';
/*
XX 是模式名,以上SQL可以生成一个批量删除的SQL语句,你只需再运行一次查询出来的结果集
就可以删除所有的表而不用删除数据库了
*/
# 如果报错就执行
DROP TABLE [TABLE_NAME] CASCADE;
2、删除该模式下的索引和序列,这里使用Navicat Premium
客户端工具进行删除,例如
删除该模式下的所有索引(点击Index
后会展示该模式下的所有索引)
全部选中,然后点击Delete Index
即可。删除序列也同理。
3、导出该模式下的所有表结构和数据
会得到一个SQL文件,最后去目标数据库执行这个SQL
文件即可。