sql >> Database teknologi >  >> RDS >> Mysql

hvordan man udfører mysql-kommandoen DELIMITER

Det gør du sandsynligvis ikke skal ændre afgrænsningen.

Afgrænsningstegnet er nødvendigt i CLI'en for at fortælle, hvor SQL-sætningen slutter, fordi CLI'en vil blive ved med at læse og udføre flere sætninger, indtil du beder den stoppe (f.eks. med exit eller kontrol-D). Men hvad den faktisk læser, er bare en strøm af karakterer; det skal på en eller anden måde finde ud af, hvor det ene udsagn slutter og det næste starter. Det er, hvad afgrænseren gør.

I PHP udfører hvert funktionskald én sætning. Der kan ikke være flere udsagn i et funktionskald, så der er ikke behov for en måde at afgrænse dem på. Udsagnet er hele strengen. Dette gælder for den gamle mysql_query samt den nyere mysqli_query og BOB. Selvfølgelig er der mysqli_multi_query hvis du virkelig ønsker at sende flere forespørgsler til én funktion.

I tilfælde af en lagret procedure/trigger/funktion/etc., kan der være flere sætninger, men det håndteres af MySQL selv (og er altid ; , SÅ VIDT JEG VED). Så for så vidt angår PHP, er det stadig et udsagn.

Den afgrænsningsindstilling, du ser i phpMyAdmin, bliver sandsynligvis brugt til at opdele sætninger fra hinanden, og udføres sandsynligvis i PHP-kode. Det er nødt til at gøre dette, fordi det accepterer brugerinput, der består af flere sætninger, men skal kun sende én sætning pr. funktionskald. (Jeg har ikke tjekket phpMyAdmin-koden for at være helt sikker på dette).



  1. Hvordan får man fil fra BLOB i Oracle?

  2. MySQL:Bruger DATETIME som primær nøgle

  3. Bruger jeg JDBC Connection Pooling?

  4. Vil du annullere afventende AJAX-anmodninger i PHP-appen?