Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pisahkan beberapa pernyataan SQL menjadi pernyataan SQL individual

Saya tidak yakin ini mungkin sama sekali. Anda tentu membutuhkan pengetahuan mendalam tentang sintaks SQL dari DBMS target Anda. Misalnya di luar kepala saya, ini adalah satu pernyataan MySQL:

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

Kemungkinan ada konstruksi di beberapa DBMS yang, tanpa pembatas, bisa menjadi ambigu.

Saya pikir Anda mungkin terpaksa. Ini benar-benar cara standar untuk membatasi pernyataan SQL. Bahkan jika Anda dapat menemukan heuristik untuk mendeteksi titik pernyataan SQL yang mungkin dimulai, Anda berisiko mengalami bencana seperti klausa "HAPUS DARI BARANG" yang tidak disengaja-tanpa-WHERE-clause.

Apakah pernyataan baris-baru-ganda-untuk-baru dapat diterima?

Tidak, bahkan dengan pembatas titik koma, regex tidak cukup kuat untuk mengurai SQL. Poin masalah akan mencakup:

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

dan setiap interposisi dari struktur ini. Eek!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ketergantungan melingkar mysql dalam batasan kunci asing

  2. Mengapa batas waktu maksimum MySQL 838:59:59?

  3. Kesalahan mengimpor SQL dump ke MySQL:Basis data tidak dikenal / Tidak dapat membuat basis data

  4. Mengambil Baris Tunggal dari Tabel Gabung

  5. Temukan baris dengan nilai kolom duplikat/serupa MySQL