我创建了包含多个表的MySQL模式,然后我决定使用以下命令为每个表添加外键约束:
ALTER TABLE Orders ADD FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
如何获取架构的备份(包含外键)以便我可以在另一台机器上复制它?
请注意 SHOW CREATE TABLE 和mysqldump在我的情况下不起作用,因为它们只创建UNIQUE KEY约束而不是FOREIGN KEY .
SHOW CREATE TABLE
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
我经常遇到这个 . 这就是我这样做所以我可以使用命令行中的 'pv' 来恢复 sql 转储上的进度条:
'pv'
sql
{ echo "SET foreign_key_checks=0;";pv sql.gz; echo "SET foreign_key_checks=1;"; } | mysql dbname
(我将几个命令放在 { } 中,以便在保持 'pv' 的进度条的同时将其管理为 mysql 时的单个命令
{ }
mysql
2 回答
mysqldump也创建外键转储...它添加了如下语法:
您可以在以下位置阅读手册:http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html获取外键的mysqldump
我经常遇到这个 . 这就是我这样做所以我可以使用命令行中的
'pv'
来恢复sql
转储上的进度条:(我将几个命令放在
{ }
中,以便在保持'pv'
的进度条的同时将其管理为mysql
时的单个命令