Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara kerja HANDLER FOR NOT FOUND dan apa kegunaannya?

HANDLER adalah untuk menangkap pengecualian.

Saat membaca dari kursor, membaca melewati akhir kursor melempar NOT FOUND pengecualian, daripada mengembalikan aliran NULL endless yang tak ada habisnya , jadi Anda harus menangkap pengecualian ini.

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...

Disalin sebagian dari contoh saya di sini .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tips Upgrade Percona XtraDB Cluster ke 8.0

  2. Untuk instalasi mysql homebrew, di mana my.cnf?

  3. Hubungan bersarang Laravel

  4. Subquery dalam pernyataan SELECT (MySQL)

  5. Python dan Django OperationalError (2006, 'server MySQL telah hilang')