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 № 1Jeś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`