Mysql
 sql >> база данни >  >> RDS >> Mysql

как да изпълним mysql команда DELIMITER

Вероятно не трябва да промените разделителя.

Разделителят е необходим в CLI, за да каже къде завършва SQL операторът, тъй като CLI ще продължи да чете и изпълнява повече оператори, докато не му кажете да спре (например с exit или Control-D). Но това, което всъщност чете, е просто поток от знаци; по някакъв начин трябва да разбере къде свършва едно изявление и къде започва следващото. Това прави разделителя.

В PHP всяко извикване на функция изпълнява един израз. В едно извикване на функция не може да има множество изрази, така че няма нужда от начин да ги разделите. Изявлението е целия низ. Това е вярно за стария mysql_query както и по-новият mysqli_query и ЗНП. Разбира се, има mysqli_multi_query ако наистина искате да предадете множество заявки към една функция.

В случай на съхранена процедура/тригер/функция/и т.н., може да има множество изрази, но това се обработва от самия MySQL (и винаги е ; , AFAIK). Така че, що се отнася до PHP, това все още е едно твърдение.

Настройката на разделителя, която виждате в phpMyAdmin, вероятно се използва за разделяне на изрази и вероятно се извършва в PHP код. Той трябва да направи това, защото приема потребителски вход, състоящ се от множество оператори, но трябва да предава само един израз на извикване на функция. (Не съм проверил кода на phpMyAdmin, за да съм напълно сигурен в това).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL основна заявка

  2. Как да покажа грешка в MySQL в PHP за дълга заявка, която зависи от въведеното от потребителя?

  3. Как да импортирам дъмп на mysql, докато преименуваш някои таблици/колони и изобщо не импортираш други?

  4. Как да решим проблема с кодирането на символи в MySQL?

  5. SQL Връща 1,0 в нова променлива въз основа на случай, когато израз се отнася до множество други променливи