PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Valore predefinito in una colonna quando si inserisce una nuova riga

Benvenuto in SO. Dai un'occhiata a triggers .

Fondamentalmente devi solo creare una funzione per eseguire l'aggiornamento..

CREATE OR REPLACE FUNCTION update_date() RETURNS trigger AS
$BODY$
BEGIN
  NEW.updated = current_date;
  RETURN NEW;
END;
$BODY$ LANGUAGE 'plpgsql';

.. e allegalo a un BEFORE INSERT OR UPDATE innescare in questo modo

CREATE TRIGGER check_update
BEFORE INSERT OR UPDATE ON photographies
FOR EACH ROW EXECUTE PROCEDURE update_date();

Dopo aver inserito un record ..

INSERT INTO photographies (name, author, date) 
VALUES ('José Saramago ','As Intermitências da Morte','2005-01-01');

.. hai la tua colonna aggiornata con la data corrente

SELECT * FROM photographies ;
      name      |           author           |    date    |  updated   
----------------+----------------------------+------------+------------
 José Saramago  | As Intermitências da Morte | 2005-01-01 | 2019-12-06
(1 Zeile)