2017-05-26 27 views

回答

0

使用在UPDATE WHERE子句

UPDATE table_name 
SET column1 = value1, column2 = value2, ... 
WHERE column1 is not NULL; 
0

你會放一個觸發,如果已填充列返回NULL,或新的對象,如果事實並非如此。

CREATE OR REPLACE FUNCTION public.safeguard_tg_fn() RETURNS trigger AS 
$BODY$BEGIN 

    --If the column was not set, allow updating the entire row 
    IF OLD.myimportantcol ISNULL THEN 
     RETURN NEW; 
    ELSE 
    --Else, the column is already populated, cancel the entire update (for this row only) 
     RETURN NULL; 
    END IF; 
END;$BODY$ LANGUAGE plpgsql; 

CREATE TRIGGER safeguard_tg BEFORE UPDATE 
    ON public.mytable FOR EACH ROW 
    EXECUTE PROCEDURE public.safeguard_tg_fn();