Skip to content

Instantly share code, notes, and snippets.

@fayimora

fayimora/5.sql Secret

Created July 8, 2014 20:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fayimora/322838eb588344d25bc2 to your computer and use it in GitHub Desktop.
Save fayimora/322838eb588344d25bc2 to your computer and use it in GitHub Desktop.
# --- !Ups
create or replace function update_timestamp() returns trigger as $$
begin
NEW.UPDATED_AT = now();;
return NEW;;
end;;
$$ language 'plpgsql';
alter table "CONTESTS" alter column "CREATED_AT" set default CURRENT_TIMESTAMP;
alter table "CONTESTS" alter column "UPDATED_AT" set default CURRENT_TIMESTAMP;
create trigger contests_timestamp_update BEFORE update on "CONTESTS" for each row execute procedure update_timestamp();
alter table "PROBLEMS" alter column "CREATED_AT" set default CURRENT_TIMESTAMP;
alter table "PROBLEMS" alter column "UPDATED_AT" set default CURRENT_TIMESTAMP;
create trigger problems_timestamp_update before update on "PROBLEMS" for each row execute procedure update_timestamp();
alter table "USERS" alter column "CREATED_AT" set default CURRENT_TIMESTAMP;
alter table "USERS" alter column "UPDATED_AT" set default CURRENT_TIMESTAMP;
create trigger users_timestamp_update before update on "USERS" for each row execute procedure update_timestamp();
# --- !Downs
drop function update_timestamp() CASCADE;
alter table "CONTESTS" alter column "CREATED_AT" drop default;
alter table "CONTESTS" alter column "UPDATED_AT" drop default;
drop trigger contests_timestamp_update on "CONTESTS";
alter table "PROBLEMS" alter column "CREATED_AT" drop default;
alter table "PROBLEMS" alter column "UPDATED_AT" drop default;
drop trigger problems_timestamp_update on "PROBLEMS";
alter table "USERS" alter column "CREATED_AT" drop default;
alter table "USERS" alter column "UPDATED_AT" drop default;
drop trigger users_timestamp_update on "USERS";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment