sql >> Databáze >  >> RDS >> Mysql

Rozdělte více příkazů SQL na jednotlivé příkazy SQL

Nejsem si jistý, že je to vůbec možné. Určitě byste potřebovali hluboké znalosti syntaxe SQL vašeho cílového DBMS. Například z hlavy je jeden jediný příkaz MySQL:

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

Je pravděpodobné, že v některých DBMS existují konstrukce, které by bez oddělovače mohly být nejednoznačné.

Myslím, že k tomu můžete být nuceni. Je to zcela standardní způsob oddělování příkazů SQL. I když můžete najít heuristiku k detekci bodů pravděpodobně-počátek-příkazu SQL, riskujete katastrofy, jako je náhodné „VYMAZAT Z věcí“ bez klauzule WHERE.

Byl by přijatelný příkaz double-newline-for-new-?

Ne, dokonce s středník, regulární výraz není dostatečně výkonný na to, aby analyzoval SQL. Problémové body by zahrnovaly:

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

a jakékoli vložení těchto struktur. Eek!



  1. Jak zjistit, který oddíl bude použit v Postgres hash partitioning?

  2. Mysql - jak nastavit automatické zvýšení, aby začínalo od nuly

  3. Jak může vaše malá firma těžit z cloud computingu

  4. PL/SQL vytiskne referenční kurzor vrácený uloženou procedurou