我有一个MySQL数据库mydb
和一个反映mytestdb
的测试环境mydb
中的数据库。我需要一种从测试数据库到实时数据库“推动更改”的方法。所以伪代码中的过程就像
for each table T in mydb
delete all from T
T' = corresponding table in mytestdb
for each row R in T'
insert R in T
或者我应该不同地执行该程序?这个设置有任何潜在的问题吗?
答案 0 :(得分:1)
计划A:
DROP TABLE x;
Create and Load its replacement.
Plan B(更适合在 live 情况下重新加载表格):
CREATE TABLE new LIKE real;
LOAD TABLE new ... -- slowest step
RENAME TABLE real TO old, new TO real; -- atomic and 'instantaneous'
DROP TABLE old;