我使用InnoDB引擎导入MySQL表有哪些选项,表已经存在,而不会丢失对现有表的读访问权限?一般来说,我指的是ALTER TABLE
非常慢的情况,而我想要转储表,修改转储,然后导入它。
如果我使用mysqldump
进行转储,那么当我重新插入时,它会在插入之前删除表,因此在导入完成之前,读访问权当然会丢失。
我可以简单地更改转储中的表名,导入它,然后在完成后,删除旧表并重命名新表吗?有没有更好的办法?提前谢谢。
答案 0 :(得分:1)
如果你的桌子结构相同,我没有看到任何问题。您只需跳过“DROP TABLE”运算符即可。几乎所有转储器都可以选择不在转储中包含DROP TABLE / CREATE TABLE。我个人推荐Sypex Dumper。
如果你想在没有锁定表的情况下更改表结构,我认为最好的方法是使用 pt-online-schema-change - ALTER tables without locking them
答案 1 :(得分:1)