下面是用戶表,id是主鍵,不會重復
https://www.jianshu.com/p/b175066a1931
下面是存儲過程的創建,這個是一個比較全面的存儲過程,包括輸入,輸出,事務,循環,判斷,定義變量。常用的一些,我都寫進來了。
#將結束符號 改成 ;; 結束 DELIMITER ;; #創建一個存儲過程,名稱是pre_affair ,輸入變量是 in_user_name 字符串型 ,輸出變量是out_rest 整形 CREATE PROCEDURE `pre_affair`(IN in_user_name VARCHAR(255), OUT out_rest INT) BEGIN #定義一個循環變量i,類型是整形,默認是5 DECLARE i INT DEFAULT 5; #定義一個錯誤的變量,類型是整形,默認是0 DECLARE t_error INTEGER DEFAULT 0; #捕獲到sql的錯誤,就設置t_error為1 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; #開啟事務 START TRANSACTION; #刪除id是5的這條數據 DELETE FROM `user` WHERE id = 5; #循環插入數據,這里是從 id是5插入到id是6為止 #注意:這里user表的id是5的這條被刪除了,因為id是主鍵,但是id是6的這條本身存在,如果這里插入id是6時,將會發生事務回滾,id是5的這條不會被刪除 WHILE i<7 DO #插入一條數據進來 INSERT INTO `user`(id,user_name)VALUES(i,in_user_name); #設置i每次循環加1 SET i = i + 1; END WHILE; #如果捕獲到錯誤 IF t_error=1 THEN #回滾 ROLLBACK; ELSE #提交 COMMIT; END IF; #查看返回的結果,並給到輸出的變量中 SELECT t_error INTO out_rest; END ;; #將結束符號 改成 ; 結束 DELIMITER ;