使用外键表约束备份MySQL模式

时间:2014-05-26 01:38:27

标签: mysql sql schema backup mysqldump

我创建了包含多个表的MySQL模式,然后我决定使用以下命令为每个表添加外键约束:

ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)

如何获取架构备份(包含外键)以便我可以在另一台机器上复制它?

请注意SHOW CREATE TABLE和mysqldump在我的情况下不起作用,因为它们只创建一个UNIQUE KEY约束而不是FOREIGN KEY。

2 个答案:

答案 0 :(得分:6)

mysqldump也创建外键转储... 它增加了语法:

mysql> SET foreign_key_checks = 0;
mysql> SOURCE dump_file_name;
mysql> SET foreign_key_checks = 1;

您可以阅读以下手册: http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html用于mysqldump的外键

答案 1 :(得分:0)

我经常遇到这个。这就是我这样做所以我可以使用命令行中的'pv'sql转储恢复时获取进度条:

{ echo "SET foreign_key_checks=0;";pv sql.gz; echo "SET foreign_key_checks=1;"; } | mysql dbname

(我将几个命令放在{ }中,以便在保留mysql的进度条的同时将其作为单个命令处理{/ 1}}