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

Làm thế nào để phát hiện một lần quay lui trong thủ tục được lưu trữ MySQL?

Bạn có thể thêm một tham số đầu ra và sau đó đặt nó thành giá trị bạn muốn trong các trình xử lý thoát của mình.

Đây là một ví dụ sử dụng proc của bạn:

delimiter $$
  create procedure multi_inserts(
  IN var1 int(11),
       .
       .
       .
  IN string1 text,
  OUT p_return_code tinyint unsigned
  )
  BEGIN

  DECLARE exit handler for sqlexception
  BEGIN
    -- ERROR
    set p_return_code = 1;
    rollback;
  END;

  DECLARE exit handler for sqlwarning
  BEGIN
    -- WARNING
    set p_return_code = 2;
    rollback;
  END;

  START TRANSACTION;
  insert into table1(a,b,c,d) values(var1,var2,var3,var4);
  insert into table2(e,f,g) values(var5,var6,string1);
  COMMIT;

  -- SUCCESS
  set p_return_code = 0;

  END $$
  delimiter ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thay đổi div theo các hộp thả xuống đã chọn

  2. Xóa tất cả các khóa ngoại trong cơ sở dữ liệu (MySql)

  3. MySQL Cast dưới dạng Boolean

  4. MYSQL đối sánh với truy vấn hai bảng

  5. Tạo lỗi kích hoạt:cú pháp không hợp lệ