sql >> Databáze >  >> RDS >> Mysql

Zpracovává se výjimka přístupu obsluhy výjimek MySQL

Vypadá to jako RESIGNAL je to, co hledáte.

DELIMITER $$

DROP PROCEDURE IF EXISTS `test`.`resig` $$
CREATE PROCEDURE `test`.`resig` ()
BEGIN

DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
  SELECT 'I executed something before throwing the error' as `this_works`;
  RESIGNAL;
END;

SELECT foo FROM bar WHERE baz = 0;

END $$

DELIMITER ;


mysql> call resig();
+------------------------------------------------+
| this_works                                     |
+------------------------------------------------+
| I executed something before throwing the error |
+------------------------------------------------+
1 row in set (0.00 sec)

ERROR 1054 (42S22): Unknown column 'foo' in 'field list'

mysql>



  1. SQL SELECT pro získání prvních N kladných celých čísel

  2. Jak vytvořit sekvenci Oracle začínající maximální hodnotou z tabulky?

  3. T-SQL poddotaz Max (datum) a spojení

  4. Vyberte * z tabulky1, která neexistuje v tabulce2 s podmíněným