7

我之前问过这个问题,我只是回到这个问题。

我有一个 MySQL 数据库的备份脚本,使用mysqldump--tab选项,因此它.sql为结构生成一个文件,为内容生成一个.txt文件(管道分隔)。

链接问题的答案在导入 SQL 文件(表结构)时有效,但在导入某些表时我也得到外键约束错误(因为表本身有一个外键)。这两个命令是这样的:

cat <(echo "SET FOREIGN_KEY_CHECKS=0;") "table.sql" | mysql [user/pass] database
mysqlimport [user/pass] --local --fields-terminated-by="|" database "table.txt"

看起来这是几年前在他们的错误跟踪器上提出的要求,但从未实施过。有什么办法吗?

请注意,出于各种原因,我想继续使用 tab 选项(它更快,并且与 git 一起使用更好,因为每一行都在单独的行上)。

4

1 回答 1

13

在运行数据库创建脚本之前,您始终可以通过以下命令行将 mysql 全局系统变量“foreign_key_checks”临时设置为关闭/零值。

mysql --host=localhost --user=USER --password -e "SET GLOBAL foreign_key_checks=0"

在命令行输入密码是不安全的。省略它并仅指定--password而不是--password=MYPATH强制系统在继续之前向用户询问它。

于 2014-01-15T17:58:51.443 回答