sql >> Database teknologi >  >> RDS >> Mysql

Hvordan fungerer HANDLER FOR NOT FOUND, og ​​hvad er dets brug?

En HANDLER er til at fange undtagelser.

Når du læser fra en markør, kaster læsning forbi slutningen af ​​markøren en NOT FOUND undtagelse, i stedet for at returnere en endeløs strøm af NULL , så du er nødt til at fange denne undtagelse.

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

Delvist kopieret fra mit eksempel her .




  1. MySQL - Rækker til kolonner

  2. En Event Management Data Model

  3. Hvordan laver jeg en fuzzy match af firmanavne i MYSQL med PHP til autofuldførelse?

  4. Importer filstørrelsesgrænse i PHPMyAdmin