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

BẮT ĐẦU ... KẾT THÚC vs BẮT ĐẦU GIAO DỊCH ... CAM KẾT

Trong cả MySQL 5.7 và MySQL 8, BEGINEND giống như trong T-SQL và đại diện cho một "câu lệnh ghép" còn được gọi là "một khối mã", giống như dấu ngoặc nhọn trong C, Java, C #, v.v.

Tuy nhiên, BEGIN từ khóa cũng là (gây nhầm lẫn) được quá tải làm bí danh cho BEGIN WORKSTART TRANSACTION và ngữ nghĩa của chúng phụ thuộc vào việc chúng có được sử dụng trong một chương trình được lưu trữ hay không:

Vì vậy:

  • START TRANSACTION
    • Luôn bắt đầu một giao dịch. Bạn nên thích cú pháp này hơn.
  • BEGIN :
    • Nếu bạn đang ở trong một Thủ tục, Hàm, Trình kích hoạt hoặc Sự kiện được Lưu trữ, thì BEGIN tự nó đánh dấu sự bắt đầu của một câu lệnh ghép. Bạn chỉ có thể sử dụng START TRANSACTION để bắt đầu giao dịch.
    • Nếu bạn đang trực tiếp thực thi SQL trên MySQL, thì điều này cũng bắt đầu một giao dịch (vì nó được hiểu là BEGIN WORK ). Nhưng thật ngớ ngẩn và khó hiểu khi sử dụng nó theo cách này, vì vậy hãy tránh nó.
  • BEGIN WORK :
    • Đây là bí danh cho START TRANSACTION . Tôi hoàn toàn tránh sử dụng điều này để tránh nhầm lẫ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. Cách tạo mối quan hệ nhiều với nhiều trong SQLAlchemy (python, flask) cho người dùng mô hình với chính nó

  2. làm thế nào để thả cơ sở dữ liệu

  3. Làm thế nào để tạo các trường động được chọn từ một bảng trong mysql?

  4. Làm thế nào để tạo cơ sở dữ liệu với doct2?

  5. Lưu trữ dữ liệu được mã hóa base64 dưới dạng kiểu dữ liệu BLOB hoặc TEXT