/ / mysql SET FOREIGN_KEY_CHECKS = 0 nie działa z linii poleceń lub skryptu powłoki - mysql, shell

mysql SET FOREIGN_KEY_CHECKS = 0 nie działa z linii poleceń lub skryptu powłoki - mysql, shell

Ustaw foreign_key_checks = 0 działa dobrze z polecenia mysql i mogłem usunąć rekordy, które mają ograniczenia klucza obcego.

Ale z powłoki, jeśli uruchomię to samo polecenie, nie ma błędupokazuje się, ale kiedy idę do mysql i uruchamiam polecenie delete, pokazuje błąd klucza obcego. $ (echo "SET FOREIGN_KEY_CHECKS = 0" | mysql --uuser --ppassword db) Muszę uruchomić to ze skryptu powłoki. Każda pomoc byłaby świetna.

Dziękuję Ci.

Odpowiedzi:

0 dla odpowiedzi № 1

Jeśli korzystasz z DELETE polecenie ze skryptu .sql plik następnie możesz spróbować uruchomić poniższe polecenie z powłoki / linii poleceń

{echo "SET FOREIGN_KEY_CHECKS=0;" ; cat delete_query.sql ; } | mysql

Możesz uruchomić to polecenie za pomocą skryptu powłoki

RESULT=`mysql -u username -p password -D dbname
-e "SET FOREIGN_KEY_CHECKS=0; DELETE FROM mytable WHERE some_condition;"`

(OR) za pomocą HERETAG lubić

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`