コマンドラインで外部キーチェックを無効にする 質問する

コマンドラインで外部キーチェックを無効にする 質問する

私は MySQL データベースのバックアップ スクリプトを持っており、オプションmysqldumpを使用して、構造用のファイルとコンテンツ用のファイル (パイプで区切られた)--tabを生成します。.sql.txt

一部のテーブルには外部キーがあるため、インポートするとエラーが発生します。

8行目のエラー1217 (23000): 親行を削除または更新できません: 外部キー制約が失敗しました

SET FOREIGN_KEY_CHECKS=0(およびその後)の使用については知っていますSET FOREIGN_KEY_CHECKS=1。これらを各ファイルに追加すると.sql、インポートは機能します。ただし、明らかに次のmysqldumpファイルでは上書きされます。

以下のように別のコマンドとして実行することも試みましたが、エラーが返されます。

echo "SET FOREIGN_KEY_CHECKS=0" | mysql [user/pass/database] 
[all the imports]
echo "SET FOREIGN_KEY_CHECKS=1" | mysql [user/pass/database] 

コマンドラインで FK チェックを無効にする他の方法はありますか?

ベストアンサー1

コマンド--init-commandのパラメータを使用することもできます。mysql

つまり:mysql --init-command="SET SESSION FOREIGN_KEY_CHECKS=0;" ...

MySQL 5.5 ドキュメント - mysql オプション

おすすめ記事