过去几天我一直在学习MySQL。以前,我用PostgreSQL开发。也许我错过了一些东西,并且无法在SO中找到正确的教程或问题。如果这是重复的,请随时给出一个链接。
我会直截了当地说,我的问题是:
- 这是用我的程序直接复制的PostgreSQL编写的,在MySQL中有类似的东西吗? (不要介意字符串)。
EXCEPTION
WHEN OTHERS THEN
RAISE EXCEPTION 'app_get_rpt_doctor_signature_all(text) %',
'OTHERS ' || SQLERRM;
答案 0 :(得分:1)
您可以DECLARE ... HANDLER
捕获异常,并且自MySQL v5.5起,您可以SIGNAL
或RESIGNAL
分别提升您自己的/传递现有异常;在这些语句中,可以SET MESSAGE_TEXT
指定自定义消息,但遗憾的是,无法访问现有(已处理)异常的消息文本。
因此,您可以这样做:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT := 'app_get_rpt_doctor_signature_all(text) OTHERS'
;
或RESIGNAL
消息不变:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
RESIGNAL SQLSTATE '45000'
;