PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Valor padrão em uma coluna ao inserir uma nova linha


Bem-vindo ao SO. Dê uma olhada em triggers .

Basicamente você só precisa criar uma função para realizar a atualização ..
CREATE OR REPLACE FUNCTION update_date() RETURNS trigger AS
$BODY$
BEGIN
  NEW.updated = current_date;
  RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql';

.. e anexe-o a um BEFORE INSERT OR UPDATE acionar assim
CREATE TRIGGER check_update
BEFORE INSERT OR UPDATE ON photographies
FOR EACH ROW EXECUTE PROCEDURE update_date();

Após inserir um registro ..
INSERT INTO photographies (name, author, date) 
VALUES ('José Saramago ','As Intermitências da Morte','2005-01-01');

.. você tem sua coluna atualizada com a data atual
SELECT * FROM photographies ;
      name      |           author           |    date    |  updated   
----------------+----------------------------+------------+------------
 José Saramago  | As Intermitências da Morte | 2005-01-01 | 2019-12-06
(1 Zeile)