i have below table
column | type | modifiers -----------+--------------------------+--------------------------------------------------------- id | integer | not null default nextval('votes_vote_id_seq'::regclass) voter | character varying | votee | character varying | timestamp | timestamp time zone | default now() currently , have unique constraint voter , votee meaning there 1 vote per user
i enforce condition allows votes happen weekly using timestamp column. user can vote votee once week.
is there way can add custom constraints postgres? same thing functions?
a constraint special trigger in postgresql.
normal triggers won't do, because cannot see concurrent modifications of database, 2 concurrent transactions both see condition fulfilled, after commit, condition might violated.
the solution i'd recommend use serializable transactions throughout (everybody, including readers, has use them work) , verify condition in before trigger.
serializable guarantee above scenario cannot happen.
Comments
Post a Comment