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

Ngoại lệ truy cập trình xử lý ngoại lệ MySQL đang được xử lý

Có vẻ như RESIGNAL là những gì bạn đang tìm kiếm.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LAST_INSERT_ID () trong một giao dịch có đáng tin cậy không?

  2. Mã hóa JSP trong khi chèn văn bản không phải tiếng Anh trong cơ sở dữ liệu MySQL

  3. Làm thế nào để thực hiện Tham gia bên trong trong django?

  4. Python MySQL - CHỌN hoạt động nhưng không XÓA?

  5. Vòng qua mysql_fetch_array trong PHP