CREATE DEFINER=`root`@`%` PROCEDURE `iname`(IN iname varchar(50))
BEGIN
DECLARE EXIT HANDLER for SQLWARNING
BEGIN
insert into isns_user_details(manner) values(iname);
END;
END
BEGIN
DECLARE EXIT HANDLER for SQLWARNING
BEGIN
insert into isns_user_details(manner) values(iname);
END;
END
受影响的行: 0
时间: 0.000ms
看看提示
insert into isns_user_details(manner) values(iname);
END
这样调用就没问题
我不会写错误异常,求帮助
执行没任何问题,插入数据正常
直接在MYSQL命令行下运行,看看提示,iname中的值用具体的数值,
建表isns_user_details语句 是什么
Query OK, 1 row affected (0.00 sec) isns_user_details | CREATE TABLE `isns_user_details` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL DEFAULT '0',
`type_value_note` varchar(100) DEFAULT NULL',
`type_value` varchar(10) DEFAULT NULL,
`type` int(11) NOT NULL DEFAULT '0',
`value` float(11,2) NOT NULL DEFAULT '0.00',
`old_value` float(11,2) NOT NULL DEFAULT '0.00' ,
`new_value` float(11,2) NOT NULL DEFAULT '0.00',
`manner` varchar(50) DEFAULT NULL',
`manner_note` varchar(100) DEFAULT NULL',
`add_time` int(11) NOT NULL DEFAULT '0',
`action_note` varchar(255) DEFAULT NULL ,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 我只是用这个表实验的
BEGIN
DECLARE EXIT HANDLER FOR SQLWARNING
BEGIN
insert into isns_user_details(manner) values(iname);
END;
insert into isns_user_details(manner) values(iname);
END
这样调用就没问题,我想红色内容应该是不执行的,只执行下面的,但真正是为什么还不懂
BEGIN
DECLARE EXIT HANDLER for SQLWARNING
insert into isns_user_details(manner) values(iname);
END
BEGIN
INSERT INTO isns_user_details(manner) VALUES (iname);
END
BEGIN
DECLARE EXIT HANDLER FOR SQLWARNING
BEGIN
insert into isns_user_details(manner) values(iname);//当执行主体出现异常时执行的语句
END;
insert into isns_user_details(manner) values(iname);//执行主体
END
如果理解错误请指教