就是如何判断select insert update delete操作的成功与否是否出错。
以前项目从来没用过存储过程。很多开源的软件也没有。
所以就疏忽这块内容。现在想补充学习其他之前没用过的其他技术。
以提高以后项目在数据库操作方面的效率。看了几章手册的内容,感觉受益匪浅。还在继续学习中。
言归正传。执行select insert update delete操作,如何判断执行情况。知道dml有个ROW_COUNT(),可以用来判断吗,还有其他办法吗。结合DECLARE HANDLER FOR 使用吗。谢谢。
用DECLARE HANDLER捕获错误
DECLARE Handlers
DECLARE handler_type HANDLER FOR condition_value[,...] statement
handler_type:
CONTINUE
| EXIT
| UNDO
condition_value:
SQLSTATE [VALUE] sqlstate_value
| condition_name
| SQLWARNING
| NOT FOUND
| SQLEXCEPTION
| mysql_error_code
简单示例:
BEGIN
DECLARE CONTINUE HANDLER FOR 1216 select
'Foreign key constraint violated';
INSERT INTO departments (department_name,manager_id,location)
VALUES ('Elbonian HR','Catbert','Catbertia');
END;