首页 文章

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

提问于
浏览
1

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

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

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

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

2 回答

  • 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

  • 0

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

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

    (我将几个命令放在 { } 中,以便在保持 'pv' 的进度条的同时将其管理为 mysql 时的单个命令

相关问题