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

HANDLER FOR NOT FOUND hoạt động như thế nào và cách sử dụng nó là gì?

HANDLER là để bắt các ngoại lệ.

Khi đọc từ con trỏ, đọc qua phần cuối của con trỏ sẽ ném NOT FOUND ngoại lệ, thay vì trả về một luồng NULL vô tận , vì vậy bạn phải nắm bắt được ngoại lệ này.

DECLARE val1 INT DEFAULT NULL;
DECLARE done TINYINT DEFAULT FALSE;

DECLARE c1 CURSOR FOR SELECT id FROM t1;

-- when the NOT FOUND condition fires, "done" -- which defaults to FALSE -- will be set to true,
-- and since this is a CONTINUE handler, execution continues with the next statement.   

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN c1;

my_loop: 
LOOP

  FETCH NEXT FROM c1 INTO val1; 
  IF done THEN -- this will be true when we are out of rows to read, so we go to the statement after END LOOP.
    LEAVE my_loop; 
  ELSE
    -- maybe do more stuff here
  END IF;
END LOOP;

-- procedure continues here...

Được sao chép một phần từ ví dụ của tôi tại đây .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dấu ngoặc kép, dấu ngoặc kép và Dấu ngoặc kép trong MySQL

  2. SQL Division sử dụng 'không tồn tại' trong mysql

  3. Làm cách nào để tôi có thể truyền một mảng các tham số PDO nhưng vẫn chỉ định loại của chúng?

  4. Làm cách nào để lấy giá trị tối đa của hai giá trị trong MySQL?

  5. Cách sao chép cơ sở dữ liệu MySQL sang máy chủ khác