標籤:span commit mit action int begin art entity use
DELIMITER $drop procedure if exists insert_f_arenarank$CREATE PROCEDURE `insert_f_arenarank`(in uid varchar(100))BEGINdeclare _prep int;declare _id int;DECLARE t_error INTEGER DEFAULT 0; DECLARE EXIT HANDLER FOR SQLEXCEPTION SET t_error=1;start transaction; set _prep = (select id from t_arenarank where next is null);insert into t_arenarank (userid,prep) values(uid,_prep);set _id = @@IDENTITY;update t_arenarank set next = _id where id=_prep;if t_error=1 then rollback;else commit;end if;END$DELIMITER ;
1.varchar(100) 括弧及其內容是不可以省略的;
2.# 是不能注釋的;
3.判斷是否有錯誤時:DECLARE EXIT HANDLER FOR SQLEXCEPTION SET t_error=1;
而不是DECLARE continue。
附:3種錯誤:
DECLARE EXIT HANDLER FOR 1062 Select ‘索引值重複‘;DECLARE EXIT HANDLER FOR SQLEXCEPTION Select ‘SQLException異常‘;DECLARE EXIT HANDLER FOR SQLSTATE ‘23000‘ Select ‘SQLSTATE 23000‘;
mysql 預存程序