簡體   English   中英

如何在插入 PostgreSQL 之前觸發?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM