sql >> Databasteknik >  >> RDS >> Mysql

hur man kör mysql-kommandot DELIMITER

Det gör du förmodligen inte måste ändra avgränsaren.

Avgränsaren behövs i CLI för att tala om var SQL-satsen slutar, eftersom CLI kommer att fortsätta läsa och köra fler satser tills du säger åt den att sluta (t.ex. med exit eller kontroll-D). Men vad den faktiskt läser är bara en ström av karaktärer; det måste på något sätt ta reda på var ett påstående slutar och nästa börjar. Det är vad avgränsaren gör.

I PHP kör varje funktionsanrop en sats. Det kan inte finnas flera satser i ett funktionsanrop, så det finns inget behov av ett sätt att avgränsa dem. Uttalandet är hela strängen. Detta gäller den gamla mysql_query samt den nyare mysqli_query och PDO. Naturligtvis finns det mysqli_multi_query om du verkligen vill skicka flera frågor till en funktion.

I fallet med en lagrad procedur/trigger/funktion/etc., kan det finnas flera satser, men det hanteras av MySQL själv (och är alltid ; , SÅ VITT JAG VET). Så vad PHP beträffar är det fortfarande ett påstående.

Avgränsningsinställningen du ser i phpMyAdmin används förmodligen för att dela isär uttalanden och görs förmodligen i PHP-kod. Den måste göra detta eftersom den accepterar användarinmatning som består av flera satser, men måste bara skicka en sats per funktionsanrop. (Jag har inte kontrollerat phpMyAdmin-koden för att vara helt säker på detta).



  1. Hur man utvecklar en offline-första inbyggd Android-app

  2. Oracle SQL returnerar rader på godtyckligt sätt när ingen order by-sats används

  3. Vad betyder och gör MYSQLI_NUM?

  4. Introduktion till PL/SQL Ref Cursorer i Oracle Database