我有表格Photographies,其列为:名称,作者,日期,更新日期。
我想在插入新记录或更新记录时将“更新日期”设置为默认的current_date。
我应该如何进行呢?
答案 0 :(得分:1)
欢迎来到SO。看看triggers
。
基本上,您只需要创建一个函数即可执行更新的..
CREATE OR REPLACE FUNCTION update_date() RETURNS trigger AS
$BODY$
BEGIN
NEW.updated = current_date;
RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql';
..并将其附加到BEFORE INSERT OR UPDATE
触发器上
CREATE TRIGGER check_update
BEFORE INSERT OR UPDATE ON photographies
FOR EACH ROW EXECUTE PROCEDURE update_date();
插入记录后..
INSERT INTO photographies (name, author, date)
VALUES ('José Saramago ','As Intermitências da Morte','2005-01-01');
..您将使用当前日期更新列
SELECT * FROM photographies ;
name | author | date | updated
----------------+----------------------------+------------+------------
José Saramago | As Intermitências da Morte | 2005-01-01 | 2019-12-06
(1 Zeile)