Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chia nhiều câu lệnh SQL thành các câu lệnh SQL riêng lẻ

Tôi không chắc điều này có thể xảy ra. Bạn chắc chắn cần có kiến ​​thức chuyên sâu về cú pháp SQL của DBMS mục tiêu của mình. Ví dụ ngay trên đầu tôi, đây là một câu lệnh MySQL duy nhất:

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

Có thể có những cấu trúc trong một số DBMS mà không có dấu phân cách, có thể không rõ ràng.

Tôi nghĩ rằng bạn có thể bị buộc phải. Đó hoàn toàn là cách tiêu chuẩn để phân tách các câu lệnh SQL. Ngay cả khi bạn có thể tìm thấy phương pháp heuristic để phát hiện các điểm có thể là điểm bắt đầu của câu lệnh SQL, bạn có nguy cơ gặp phải những thảm họa như vô tình “XÓA khỏi mọi thứ” -without-WHERE-mệnh đề.

Double-newline-for-new-statement có được chấp nhận không?

Không, thậm chí với dấu chấm phẩy phân cách, regex không đủ mạnh để phân tích cú pháp SQL. Các điểm vấn đề sẽ bao gồm:

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

và bất kỳ sự xen kẽ nào của các cấu trúc này. 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. (cần tư vấn) Nói chuyện với cơ sở dữ liệu máy chủ MySQL từ Ứng dụng Android của tôi

  2. tạo một ID trong bảng mysql auto_increment (sau thực tế)

  3. java.sql.SQLException:Giá trị chuỗi không chính xác:'\ xF0 \ x9F \ x91 \ xBD \ xF0 \ x9F ...'

  4. Định dạng kết quả của một truy vấn MySQL như thể nó được chạy từ bảng điều khiển

  5. không thể hiển thị biểu tượng nhãn hiệu trong mysql sang html