set foreign_key_checks = 0はmysqlプロンプトからうまくいき、私は外部キー制約を持つレコードを削除することができました。
しかし、シェルから同じコマンドを実行してもエラーは発生しません私がmysqlに行ってdeleteコマンドを実行すると、外部キーエラーが表示されます。 $(echo "SET FOREIGN_KEY_CHECKS = 0" | mysql --uuser --ppassword db) シェルスクリプトからこれを実行しなければなりません。 どんな助けも素晴らしいだろう。
ありがとうございました。
回答:
回答№1は0あなたが DELETE
スクリプトからのコマンド .sql
ファイルであれば、シェル/コマンドラインから以下のコマンドを実行することができます
{echo "SET FOREIGN_KEY_CHECKS=0;" ; cat delete_query.sql ; } | mysql
シェルスクリプトでこのコマンドを実行するには、
RESULT=`mysql -u username -p password -D dbname
-e "SET FOREIGN_KEY_CHECKS=0; DELETE FROM mytable WHERE some_condition;"`
(OR)を使用して HERETAG
好きな
RESULT=`/usr/bin/mysql -u username -p password<<SQL
use DB_Name
SET FOREIGN_KEY_CHECKS=0;
DELETE FROM mytable WHERE some_condition;
quit
SQL`