Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak wykonać polecenie mysql DELIMITER

Prawdopodobnie nie trzeba zmienić ogranicznik.

Ogranicznik jest potrzebny w CLI, aby powiedzieć, gdzie kończy się instrukcja SQL, ponieważ CLI będzie nadal czytać i wykonywać więcej instrukcji, dopóki nie powiesz mu, aby się zatrzymał (np. za pomocą exit lub Control+D). Ale to, co faktycznie czyta, to tylko strumień znaków; musi jakoś dowiedzieć się, gdzie kończy się jedno zdanie, a zaczyna następne. To właśnie robi ogranicznik.

W PHP każde wywołanie funkcji wykonuje jedną instrukcję. W jednym wywołaniu funkcji nie może być wielu instrukcji, więc nie ma potrzeby ich ograniczania. Oświadczenie to cały ciąg. Dotyczy to starego mysql_query jak również nowszy mysqli_query i ChNP. Oczywiście istnieje mysqli_multi_query jeśli naprawdę chcesz przekazać wiele zapytań do jednej funkcji.

W przypadku procedury składowanej/trigger/function/itd. może być wiele instrukcji, ale jest to obsługiwane przez sam MySQL (i zawsze jest to ; , AFAIK). Jeśli chodzi o PHP, to wciąż jest jedno stwierdzenie.

Ustawienie separatora, które widzisz w phpMyAdmin, jest prawdopodobnie używane do dzielenia instrukcji i prawdopodobnie jest wykonywane w kodzie PHP. Musi to zrobić, ponieważ akceptuje dane wejściowe użytkownika składające się z wielu instrukcji, ale musi przekazać tylko jedną instrukcję na wywołanie funkcji. (Nie sprawdziłem kodu phpMyAdmina, aby być tego całkowicie pewnym).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. WYBIERZ wszystkie rekordy sprzed 30 dni

  2. Zapytanie MySQL, 3 tabele, t1-t2, a następnie aktualizacja t3. Jak mogę to zrobić w najbardziej efektywny sposób?

  3. Użycie aliasu kolumny w klauzuli WHERE zapytania MySQL powoduje błąd

  4. Jak usunąć wszystkie tabele MySQL z wiersza poleceń bez uprawnień do bazy danych DROP?

  5. Policz, ile wierszy wstawiono z ostatniego zapytania SQL