有没有办法用mysqlimport选项卡选项禁用外键检查?

Dis*_*oat 7 mysql command-line foreign-keys mysqlimport

之前我问过这个问题,我刚回到这个问题.

我有一个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"
Run Code Online (Sandbox Code Playgroud)

看起来几年前他们已经在他们的bug跟踪器上请求了这个,但从未实现过.它有什么办法吗?

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

Tuo*_*nen 12

在运行数据库创建脚本之前,您可以通过以下命令行将mysql全局系统变量'foreign_key_checks'临时设置为off/zero值.

mysql --host=localhost --user=USER --password -e "SET GLOBAL foreign_key_checks=0"
Run Code Online (Sandbox Code Playgroud)

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