PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Valeur par défaut dans une colonne lors de l'insertion d'une nouvelle ligne

Bienvenue sur SO. Jetez un œil à triggers .

Fondamentalement, il vous suffit de créer une fonction pour effectuer la mise à jour ..

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

.. et joignez-le à un BEFORE INSERT OR UPDATE déclencher comme ça

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

Après avoir inséré un enregistrement ..

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

.. vous avez votre colonne mise à jour avec la date du jour

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