begin
declare proname varchar(100); -- 儲存過程名稱
declare result varchar(1); -- 執行結果
declare tablename varchar(100); -- 表名
-- 定義當前任務出現執行異常時 繼續執行其他任務
-- 1, exit: 發生錯誤時退出當前**塊(可能是子**塊或者main**塊)
-- 2, continue: 傳送錯誤時繼續執行後續**
-- v_result = '2' 意思為出現異常時設定值為2
declare continue handler for sqlexception set v_result = '2';
begin
set proname = 'pro1';
begin
-- 設定成不自動提交事務 如果autocommit=1就是自動提交
set session autocommit=0;
set tablename = 'table1';
set result = 1;
-- 要模擬異常可以把這裡的sql語句寫錯 比如把tablename寫錯
-- 這裡寫你的主題sql語句 比如
select * from tablename where xx=1;
-- 如果出現異常 那記錄錯誤日誌 ,否則提交
if result = 2 then
select now(),result; -- 除錯時輸出一些資訊 以便觀察執行了哪個分支 完成除錯可以去掉
rollback;
-- 記錄日誌
insert into tablename (xx, xx) values (xx, xx);
else
select result; -- 除錯時輸出一些資訊 以便觀察執行了哪個分支 完成除錯可以去掉
commit;
end if;
-- 設定回預設值
set session autocommit=default;
end;
end;
end
儲存過程例子
alter proc futurema updageorderdatasdistinguishresult asdeclare connectionstring nvarchar 256 declare server nvarchar 256 declare uid nvarchar 256 dec...
儲存過程例子
create table testtb id varchar2 30 name varchar2 30 insert into testtb values 1 21 insert into testtb values 2 22 insert into testtb values 3 23 inser...
mysql 儲存過程 例子 MySQL儲存過程例子
索引 index create index idx sname on student sname 4 alter table teacher add index idx tname tname drop index idx sname on student 檢視 view create view v...