現(xiàn)在介紹一種在Postgre數(shù)據(jù)庫中調(diào)試觸發(fā)器的方法梧油。
假設(shè)數(shù)據(jù)庫中有表TableA苫耸,其下面有一個觸發(fā)器TriggerA。
在SqlServer數(shù)據(jù)庫中使用insert into tableA values(...)的方式儡陨,通過SqlServer的管理工具直接就能夠調(diào)試觸發(fā)器褪子。在Postgre數(shù)據(jù)庫中可以使用raise語句通過輸出日志來達到相同的功能。
raise用于函數(shù)中打印輸出骗村。
raise的語法為:raise notice 'this is raise test %',param;
創(chuàng)建一個函數(shù)raise_test嫌褪,如下所示:
create or replace function raise_test() returns text language plpgsql as $$
declare
param1 text:= 'one';
param2 text:= 'two';
begin
raise notice '測試使用raise , 參數(shù)1 : % ,參數(shù)2: %',param1,param2;
return param1;
end;
$$;
執(zhí)行SQL腳本胚股,創(chuàng)建函數(shù)笼痛,如下圖所示:
執(zhí)行函數(shù)腳本,如下圖所示:
select raise_test();
執(zhí)行結(jié)果如下圖所示:
日志打印在消息選項卡中琅拌。
利用此方法可以在觸發(fā)器缨伊、函數(shù)、存儲過程中加入raise notice來輸出各種參數(shù)變量进宝,以達到調(diào)試的效果刻坊。