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

Rastrear o carimbo de data/hora da última modificação de uma linha no Postgres


No postgresql, você tem que usar um gatilho. Você pode seguir este link sobre como fazer isso https://x- team.com/blog/automatic-timestamps-with-postgresql/ .

Para resumir o artigo, você pode fazer o seguinte:

  1. Crie a função Pl/Pgsql que será acionada:
    CREATE OR REPLACE FUNCTION trigger_set_timestamp()
    RETURNS TRIGGER AS $$
    BEGIN
      NEW.updated_at = NOW();
      RETURN NEW;
    END;
    $$ LANGUAGE plpgsql;
    

  2. Crie sua mesa
    CREATE TABLE mytable (
      id SERIAL NOT NULL PRIMARY KEY,
      content TEXT,
      updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
    );
    

  3. E finalmente adicione o gatilho:
    CREATE TRIGGER set_timestamp
    BEFORE UPDATE ON mytable
    FOR EACH ROW
    EXECUTE FUNCTION trigger_set_timestamp();
    

Você pode encontrar mais informações sobre a questão aqui:https://dba.stackexchange.com/questions/58214/getting-last-modification-date-of-a-postgresql-database-table

Espero que ajude você.