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

Dlaczego separator używany z procedurą składowaną w mysql?

Domyślnym ogranicznikiem Mysql jest ; który jest używany dla jednej instrukcji w wierszu poleceń , coś jak

select * from users ;

Kiedy piszesz wyzwalacz lub procedurę składowaną do wykonania całego kodu, mysql musi zrozumieć, że jest to blok kodu/zapytania.

Jeśli nie podano separatora, to gdy mysql napotka dowolny ; wewnątrz procedury sklepu lub wyzwalacza, uzna to za jedną instrukcję i spróbuje ją wykonać. Musimy więc zapewnić ogranicznik dla procedury sklepowej lub wyzwalacza i sprawić, by mysql zrozumiał, że wszystko w tym ograniczniku jest jednym kompletnym zestawem kodu.

Więc w twoim przykładzie

SELECT * FROM products; 

będzie częścią kompletnej instrukcji, gdy istnieje separator inny niż ; jest podany na początku.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Brak zmapowanych encji Doctrine ORM zgodnie z obecną konfiguracją

  2. Różnice w ciągach PHP i ograniczenia dynamiczne

  3. Jak haszować hasła w MySQL?

  4. Jak usunąć wiersze z tabeli łączenia (ManyToMany) w Doctrine?

  5. Zapytanie SQL, aby pokazać najbliższą datę?