sql >> Databasteknik >  >> RDS >> Mysql

Varför används avgränsare med lagrad procedur i mysql?

Mysqls standardavgränsare är ; som används för en sats på kommandoraden , något som

select * from users ;

När du skriver en trigger eller lagrad procedur för att exekvera hela koden måste mysql förstå att det är ett block med kod/fråga.

Om ingen avgränsare tillhandahålls då mysql stöter på någon ; inuti butiksproceduren eller utlösaren kommer den att tro att det är ett uttalande och kommer att försöka köra det. Så vi måste tillhandahålla en avgränsare för butiksprocedur eller trigger och få mysql att förstå att allt inom den avgränsaren är en komplett uppsättning kod.

Så i ditt exempel

SELECT * FROM products; 

det kommer att vara en del av den fullständiga satsen när det finns en annan avgränsare än ; finns i början.




  1. beräkna de flesta användare någonsin online med MySQL

  2. Lagring av dynamisk formulärdata i DBMS, letar efter det optimala tillvägagångssättet

  3. Vill dela sträng i mysql med SUBSTRING_INDEX

  4. Rails "var" för tid mindre än frågor