sql >> Database >  >> RDS >> Mysql

hoe het mysql-commando DELIMITER uit te voeren

Waarschijnlijk niet moet het scheidingsteken wijzigen.

Het scheidingsteken is nodig in de CLI om aan te geven waar de SQL-instructie eindigt, omdat de CLI meer instructies zal blijven lezen en uitvoeren totdat u hem vertelt te stoppen (bijvoorbeeld met exit of Controle-D). Maar wat het eigenlijk leest, is slechts een stroom van karakters; het moet op de een of andere manier uitzoeken waar de ene verklaring eindigt en de volgende begint. Dat is wat het scheidingsteken doet.

In PHP voert elke functieaanroep één instructie uit. Er kunnen niet meerdere instructies in één functieaanroep zijn, dus er is geen manier nodig om ze te scheiden. Het statement is de hele string. Dit geldt voor de oude mysql_query evenals de nieuwere mysqli_query en PDO. Natuurlijk is er mysqli_multi_query als u echt meerdere zoekopdrachten aan één functie wilt doorgeven.

In het geval van een opgeslagen procedure/trigger/functie/etc. kunnen er meerdere instructies zijn, maar dat wordt afgehandeld door MySQL zelf (en is altijd ; , ZO VER IK WEET). Dus wat PHP betreft, dat is nog steeds een statement.

De instelling voor het scheidingsteken die u in phpMyAdmin ziet, wordt waarschijnlijk gebruikt om uitspraken uit elkaar te splitsen en wordt waarschijnlijk in PHP-code gedaan. Het moet dit doen omdat het gebruikersinvoer accepteert die uit meerdere instructies bestaat, maar slechts één instructie per functieaanroep mag doorgeven. (Ik heb de phpMyAdmin-code niet gecontroleerd om hier helemaal zeker van te zijn).



  1. MONTHS_BETWEEN() Functie in Oracle

  2. Informatie over Oracle RAC Network en IP's controleren

  3. Moet ik in PHP/MySQL meerdere databaseverbindingen openen of 1 delen?

  4. Hoe converteer ik een script met mysql_-functies om mysqli_-functies te gebruiken?