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

Разделете множество SQL изрази на отделни SQL изрази

Не съм сигурен, че това изобщо е възможно. Със сигурност ще ви трябват задълбочени познания за SQL синтаксиса на вашата целева СУБД. Например в горната част на главата ми това е едно изявление на MySQL:

INSERT INTO things
SELECT * FROM otherthings ON DUPLICATE KEY
UPDATE thingness=thingness+1

Вероятно в някои СУБД има конструкции, които без разделител биха могли да бъдат двусмислени.

Мисля, че може да си принуден. Това е напълно стандартният начин за разграничаване на SQL изрази. Дори ако успеете да намерите евристика за откриване на точките на вероятно началото на SQL-изявлението, рискувате бедствия като случайно „ИЗТРИВАНЕ ОТ неща“-без клауза-WHERE.

Би ли било приемливо изразът double-newline-for-new?

Не, дори с разделители на точка и запетая, регулярният израз не е достатъчно мощен, за да анализира SQL. Проблемните точки включват:

';'
";"
`;`
'\';'
''';'
-- ;
#;
/*;*/

и всяко вмъкване на тези структури. Ек!



  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 диакритично нечувствително търсене (испански акценти)

  3. Json кодира цял набор от резултати от mysql

  4. Изберете заявка в две таблици в MySQL

  5. MySQL ограничение от низходящ ред