Обсуждение: Updateing pg_trigger and pg_constraint
I am trying to make some foreign keys deferrable and initially deferred. These foreign key constraints already exist so I was going to change them by updating pg_trigger and pg_constraint. However the changes do not seem to take affect. Is there something I need to do to get PostgreSQL to recognize that I have tweaked it's tables? This is the query that I used: begin work; update pg_constraint set condeferrable = true, condeferred = true where contype ='f'; update pg_trigger set tgdeferrable = true, tginitdeferred = true where tgconstrname in ( select conname from pg_constraint where contype = 'f' ); commit any help would be appreciated, Craig
Craig Servin <cservin@cromagnon.com> writes:
> I am trying to make some foreign keys deferrable and initially deferred.
> These foreign key constraints already exist so I was going to change them by
> updating pg_trigger and pg_constraint.
> However the changes do not seem to take affect. Is there something I need to
> do to get PostgreSQL to recognize that I have tweaked it's tables?
Try starting a fresh backend session. Manual hacking of those tables
isn't going to cause a relcache reload ...
regards, tom lane
> Try starting a fresh backend session. Manual hacking of those tables > isn't going to cause a relcache reload ... > Simply reconnecting to the backend does not help. If I restart the server everything works as expected. I am wondering if there is a way to trigger a relcache reload without shutting down the PostgreSQL. Craig