PostgreSQL - Auto-Update Time Stamps
Code Properties
- Language: SQL (PostgreSQL)
- Extensions:
moddatetime
Overview
Simple trigger using the moddatetime extension to automatically update timestamp columns when rows are modified.
Code
CREATE EXTENSION IF NOT EXISTS moddatetime SCHEMA extensions;
-- assuming table "todos" with timestamp column "updated_at"
-- this trigger sets "updated_at" to current timestamp on every update
CREATE TRIGGER handle_updated_at
BEFORE UPDATE ON todos
FOR EACH ROW
EXECUTE PROCEDURE moddatetime(updated_at);Usage
-- create table with timestamp columns
CREATE TABLE todos (
id SERIAL PRIMARY KEY,
title TEXT NOT NULL,
completed BOOLEAN DEFAULT FALSE,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- add trigger
CREATE TRIGGER handle_updated_at
BEFORE UPDATE ON todos
FOR EACH ROW
EXECUTE PROCEDURE moddatetime(updated_at);
-- now updates automatically set updated_at
UPDATE todos SET completed = true WHERE id = 1;Appendix
Note created on 2024-05-30 and last modified on 2024-12-31.
See Also
Backlinks
(c) No Clocks, LLC | 2024