/ / mysql SET FOREIGN_KEY_CHECKS = 0コマンドラインまたはシェルスクリプトから作業しない - mysql、shell

mysql SET FOREIGN_KEY_CHECKS = 0コマンドラインまたはシェルスクリプトから動作しない - mysql、shell

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`