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

Standardværdi i en kolonne, når der indsættes en ny række

Velkommen til SO. Tag et kig på triggers .

Grundlæggende behøver du kun at oprette en funktion for at udføre den opdaterede ..

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

.. og vedhæft den til en BEFORE INSERT OR UPDATE trigger som denne

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

Efter indsættelse af en post ..

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

.. du har din opdaterede kolonne med den aktuelle dato

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



  1. Gør intet i en triggerprocedure

  2. Indsættelse af værdier i en mysql-database virker ikke som forventet

  3. Tæller antallet af forekomster af en understreng i en streng i PostgreSQL

  4. Indsæt i tabellen ved hjælp af For In Range og nøglerne til værdien