Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment exécuter la commande mysql DELIMITER

Vous ne le faites probablement pas besoin de changer le délimiteur.

Le délimiteur est nécessaire dans la CLI pour indiquer où se termine l'instruction SQL, car la CLI continuera à lire et à exécuter d'autres instructions jusqu'à ce que vous lui disiez de s'arrêter (par exemple, avec exit ou Contrôle-D). Mais ce qu'il lit en réalité n'est qu'un flux de caractères; il doit en quelque sorte comprendre où se termine une instruction et où commence la suivante. C'est ce que fait le délimiteur.

En PHP, chaque appel de fonction exécute une instruction. Il ne peut y avoir plusieurs instructions dans un appel de fonction, il n'est donc pas nécessaire de trouver un moyen de les délimiter. L'instruction est la chaîne entière. C'est le cas de l'ancien mysql_query ainsi que le nouveau mysqli_query et AOP. Bien sûr, il y a mysqli_multi_query si vous voulez vraiment passer plusieurs requêtes à une seule fonction.

Dans le cas d'une procédure stockée/déclencheur/fonction/etc., il peut y avoir plusieurs instructions, mais cela est géré par MySQL lui-même (et est toujours ; , AUTANT QUE JE SACHE). Donc, en ce qui concerne PHP, c'est toujours une déclaration.

Le paramètre de délimiteur que vous voyez dans phpMyAdmin est probablement utilisé pour séparer les instructions, et est probablement fait dans le code PHP. Il doit le faire car il accepte les entrées utilisateur composées de plusieurs instructions, mais ne doit transmettre qu'une seule instruction par appel de fonction. (Je n'ai pas vérifié le code phpMyAdmin pour en être complètement sûr).