add automatic created_at and updated_at fields to schema
This commit is contained in:
parent
6488f597fd
commit
203db370e0
1 changed files with 20 additions and 13 deletions
|
@ -13,18 +13,6 @@ CREATE TABLE IF NOT EXISTS languages
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
CREATE FUNCTION lng_upd_trg_fn() RETURNS TRIGGER
|
|
||||||
LANGUAGE plpgsql AS
|
|
||||||
$$
|
|
||||||
BEGIN
|
|
||||||
NEW.updated_at = NOW();
|
|
||||||
RETURN NEW;
|
|
||||||
END;
|
|
||||||
$$;
|
|
||||||
|
|
||||||
CREATE TRIGGER lng_upd_trg BEFORE UPDATE ON languages FOR EACH ROW EXECUTE FUNCTION lng_upd_trg_fn();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS problems
|
CREATE TABLE IF NOT EXISTS problems
|
||||||
|
@ -34,6 +22,8 @@ CREATE TABLE IF NOT EXISTS problems
|
||||||
description TEXT NOT NULL,
|
description TEXT NOT NULL,
|
||||||
time_limit INT NOT NULL,
|
time_limit INT NOT NULL,
|
||||||
memory_limit INT NOT NULL,
|
memory_limit INT NOT NULL,
|
||||||
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
|
||||||
PRIMARY KEY(id)
|
PRIMARY KEY(id)
|
||||||
);
|
);
|
||||||
|
@ -47,6 +37,8 @@ CREATE TABLE IF NOT EXISTS contests
|
||||||
(
|
(
|
||||||
id serial NOT NULL,
|
id serial NOT NULL,
|
||||||
name VARCHAR(300) NOT NULL,
|
name VARCHAR(300) NOT NULL,
|
||||||
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||||
|
|
||||||
PRIMARY KEY(id)
|
PRIMARY KEY(id)
|
||||||
);
|
);
|
||||||
|
@ -226,11 +218,26 @@ END; $$ LANGUAGE plpgsql;
|
||||||
|
|
||||||
CREATE TRIGGER new_subtask_trg AFTER INSERT ON subtasks FOR EACH ROW EXECUTE FUNCTION on_new_subtask();
|
CREATE TRIGGER new_subtask_trg AFTER INSERT ON subtasks FOR EACH ROW EXECUTE FUNCTION on_new_subtask();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE FUNCTION updated_at_update() RETURNS TRIGGER
|
||||||
|
LANGUAGE plpgsql AS
|
||||||
|
$$
|
||||||
|
BEGIN
|
||||||
|
NEW.updated_at = NOW();
|
||||||
|
RETURN NEW;
|
||||||
|
END;
|
||||||
|
$$;
|
||||||
|
|
||||||
|
CREATE TRIGGER languages_upd_trg BEFORE UPDATE ON languages FOR EACH ROW EXECUTE FUNCTION updated_at_update();
|
||||||
|
CREATE TRIGGER problems_upd_trg BEFORE UPDATE ON problems FOR EACH ROW EXECUTE FUNCTION updated_at_update();
|
||||||
|
CREATE TRIGGER contests_upd_trg BEFORE UPDATE ON contests FOR EACH ROW EXECUTE FUNCTION updated_at_update();
|
||||||
-- +goose StatementEnd
|
-- +goose StatementEnd
|
||||||
|
|
||||||
-- +goose Down
|
-- +goose Down
|
||||||
-- +goose StatementBegin
|
-- +goose StatementBegin
|
||||||
DROP FUNCTION IF EXISTS lng_upd_trg_fn CASCADE;
|
DROP FUNCTION IF EXISTS updated_at_update CASCADE;
|
||||||
DROP FUNCTION IF EXISTS on_new_participant CASCADE;
|
DROP FUNCTION IF EXISTS on_new_participant CASCADE;
|
||||||
DROP FUNCTION IF EXISTS on_new_task CASCADE;
|
DROP FUNCTION IF EXISTS on_new_task CASCADE;
|
||||||
DROP FUNCTION IF EXISTS on_new_subtask CASCADE;
|
DROP FUNCTION IF EXISTS on_new_subtask CASCADE;
|
||||||
|
|
Loading…
Reference in a new issue