[英]how to make a trigger before insert in PostgreSQL?
我正在嘗試編寫一個插入前觸發器,
我的桌子應該是這樣的
ID | 第 2 類 | 第 3 類 | 第 4 類 |
---|---|---|---|
a1 | 1 | null | l |
a1 | 2 | F | 米 |
a1 | 3 | 噸 | z |
a1 | 4 | b | q |
a1 | 5 | ķ | e |
a1 | 6 | d | null |
如果 new.cl.2 = 1 那么 cl.3 必須是 null 其他方式應該有一個值。 我必須把專欄放在 NUTT NULL 中嗎?
CREATE FUNCTION check_tijdsteppen()
RETURNS trigger AS
$BODY$
DECLARE
BEGIN
IF EXISTS( new.cl.2 = '1' )
then new.cl.3 is null, ;
END IF;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
CREATE TRIGGER check_tijdsteppen_trigger
BEFORE INSERT
ON my_table
FOR EACH ROW
EXECUTE PROCEDURE check_tijdsteppen();
而對於 cl.4,我不知道 cl.2 中每個 id 的最后一個數字應該是什么
但我想我可以通過觸發一個觸發器來解決它,如果
new.cl.2=test.cl.2 + 1 and test.cl.4 is null and new.cl4=test.cl4
那么我必須出去。 這是個好主意嗎? 所以只有當列中沒有值時才有可能是 null null 其他方式我無法插入新值任何提示!
create or replace function check_tijdsteppen()
returns trigger
language plpgsql
as $function$
begin
if (new.field1 = '1') then
new.field2 = null;
new.field3 = 'none';
new.field4 = 10;
end if;
return new;
end;
$function$
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.