Skip to content

Instantly share code, notes, and snippets.

@PlugFox
Last active March 15, 2022 12:42
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PlugFox/780fec40a21935d7a17984b3b70e528b to your computer and use it in GitHub Desktop.
Save PlugFox/780fec40a21935d7a17984b3b70e528b to your computer and use it in GitHub Desktop.
Auto update column
CREATE OR REPLACE FUNCTION jobs.trigger_update_timestamp()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated = NOW()::timestamp;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
-- DROP TABLE jobs.job;
CREATE TABLE IF NOT EXISTS jobs.job (
id int4 NOT NULL GENERATED ALWAYS AS IDENTITY,
deletion_mark bool NULL DEFAULT false;
creator_id text NOT NULL,
created timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
job_data jsonb NOT NULL,
CONSTRAINT job_pkey PRIMARY KEY (id)
);
CREATE INDEX IF NOT EXISTS job_deletion_mark_idx ON jobs.job USING btree (deletion_mark);
CREATE INDEX IF NOT EXISTS job_creator_id_idx ON jobs.job USING btree (creator_id);
CREATE INDEX IF NOT EXISTS job_created_idx ON jobs.job USING btree (created);
CREATE INDEX IF NOT EXISTS job_updated_idx ON jobs.job USING btree (updated);
COMMENT ON COLUMN jobs.job.id IS 'Идентификатор элемента';
COMMENT ON COLUMN jobs.job.deletion_mark IS 'Пометка на удаление';
COMMENT ON COLUMN jobs.job.creator_id IS 'Идентификатор пользователя из ID token фаербейза';
COMMENT ON COLUMN jobs.job.created IS 'Создание';
COMMENT ON COLUMN jobs.job.updated IS 'Последнее обновление';
-- Table Triggers
CREATE TRIGGER update_timestamp
BEFORE UPDATE ON jobs.job
FOR EACH ROW
EXECUTE PROCEDURE jobs.trigger_update_timestamp();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment