私は 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;" ...