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

Ngoại lệ cú pháp trên trình kích hoạt với nhiều câu lệnh với MySQL và JDBC

Hành vi này có thể do gây ra thuộc tính kết nối allowMultiQueries=true . Tôi đoán là thuộc tính này sẽ làm cho MySQL chia nhỏ các truy vấn trên ; như một dấu phân tách truy vấn và sau đó thực thi chúng dưới dạng các truy vấn riêng biệt, về cơ bản phá vỡ mã tạo trình kích hoạt của bạn.

Như bạn đã nói trong câu trả lời - hiện đã bị xóa - hãy thêm allowMultiQueries=true thực sự đã giải quyết được vấn đề (trái ngược với giải thích của tôi), vấn đề thực sự có thể là ; cuối cùng trong truy vấn của bạn. Vì vậy, một điều khác cần kiểm tra là liệu sự cố có biến mất hay không bằng cách xóa ; cuối cùng (trong END; ) trong tập lệnh của bạn (và không sử dụng allowMultiQueries=true ). Một số cơ sở dữ liệu không coi là ; có giá trị ở cuối câu lệnh (vì nó thực sự là dấu phân cách để phân tách các câu lệnh).

(câu trả lời này dựa trên nhận xét của tôi ở trên)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thuộc về nhiều lấy tất cả các hàng (Laravel)

  2. Trong PHP với PDO, làm thế nào để kiểm tra truy vấn tham số SQL cuối cùng?

  3. Làm cách nào để tách các loại ký tự (â? ²s) này bằng PHP?

  4. Làm cách nào để bật máy khách MySQL tự động kết nối lại với MySQLdb?

  5. hình phạt hiệu suất của chuỗi làm khóa chính?