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

Cách sử dụng nhãn goto trong hàm lưu trữ MySQL

Có những trường hợp GOTO không thể được triển khai trong MySQL, như nhảy ngược mã (và một điều tốt nữa).

Nhưng đối với một cái gì đó như ví dụ của bạn, nơi bạn muốn chuyển từ mọi thứ đến một chuỗi câu lệnh cuối cùng, bạn có thể tạo một khối BEGIN / END xung quanh mã để nhảy ra khỏi:

aBlock:BEGIN
    if (action = 'D') then
        if (rowcount > 0) then
            DELETE FROM datatable WHERE id = 2;      
        else
           SET p=CONCAT('Can not delete',@b);
           LEAVE aBlock;
        end if;
    end if;
END aBlock;
return 0;

Vì mã của bạn chỉ là một số IF lồng nhau, cấu trúc là không cần thiết trong mã đã cho. Nhưng nó có ý nghĩa hơn đối với LOOP / WHILE / REPEAT để tránh nhiều câu lệnh RETURN từ bên trong vòng lặp và để hợp nhất quá trình xử lý cuối cùng (giống như TRY / FINALLY).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lặp lại n lần mà không cần sử dụng một thủ tục được lưu trữ

  2. Cách tốt nhất để tránh nhập trùng lặp vào cơ sở dữ liệu mysql

  3. trả về một giá trị từ cơ sở dữ liệu với mysql php pdo

  4. Cách trừ các đặc quyền trong MySQL

  5. Nối 2 bảng trong SELECT (MYSQL / PHP)