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

BẮT ĐẦU GIAO DỊCH bên trong BEGIN ... END ngữ cảnh hoặc bên ngoài và cú pháp LOOP

  1. Không:câu lệnh ghép chỉ có thể được sử dụng trong phần nội dung của các chương trình được lưu trữ.

  2. START TRANSACTION;COMMIT; là các câu lệnh riêng biệt. Nếu bạn muốn phần nội dung của một chương trình được lưu trữ chứa nhiều câu lệnh, nó sẽ cần phải đặt những câu lệnh đó trong một số loại khối câu lệnh ghép như BEGIN ... END (tương tự như đặt một khối câu lệnh trong dấu ngoặc nhọn { ... } trong một ngôn ngữ giống như C).

    Điều đó nói rằng, bạn có thể có một chương trình được lưu trữ chỉ chứa một câu lệnh duy nhất START TRANSACTION; hoặc COMMIT; —Cũng như một chương trình sẽ không yêu cầu bất kỳ khối câu lệnh ghép nào và sẽ chỉ bắt đầu một giao dịch mới / cam kết hiện tại tương ứng.

    Bên ngoài chương trình được lưu trữ, nơi không cho phép các khối câu lệnh ghép, bạn có thể phát hành START TRANSACTION;COMMIT; báo cáo khi được yêu cầu.

  3. LOOP cũng là một khối câu lệnh ghép, chỉ hợp lệ trong một thủ tục được lưu trữ. Nó không cần thiết để kèm theo một LOOP khối trong một BEGIN ... END , mặc dù nó là bình thường (vì nếu không, rất khó để thực hiện bất kỳ khởi tạo vòng lặp bắt buộc nào).

Trong trường hợp của bạn, khi bạn muốn chèn dữ liệu vào bảng từ một cấu trúc lặp, bạn sẽ cần:

  • xác định một chương trình được lưu trữ mà bạn sử dụng LOOP;

  • lặp lại một vòng lặp trong một chương trình bên ngoài thực hiện các truy vấn cơ sở dữ liệu trên mỗi lần lặp; hoặc

  • xác định lại logic của bạn theo các bộ mà SQL có thể trực tiếp hoạt động.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng mySql thông qua ném proxy Nguyên nhân do:java.sql.SQLException:Không hỗ trợ các câu lệnh có thể gọi. sau khi kết nối lại

  2. Số lượng kiểu dữ liệu Mysql json và theo nhóm

  3. vấn đề với chuẩn bị mysqli

  4. PHP / MYSQL Lấy tên dựa trên một tiêu chí khác

  5. chèn hàng loạt giá trị danh sách với SQLAlchemy Core