插入新行时,列中的默认值

时间:2019-12-06 08:14:32

标签: sql postgresql

我有表格Photographies,其列为:名称,作者,日期,更新日期。

我想在插入新记录或更新记录时将“更新日期”设置为默认的current_date。

我应该如何进行呢?

1 个答案:

答案 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)