Re: Deferrable triggers
| От | Stephan Szabo |
|---|---|
| Тема | Re: Deferrable triggers |
| Дата | |
| Msg-id | 20031106153531.B54920@megazone.bigpanda.com обсуждение исходный текст |
| Ответ на | Re: Deferrable triggers (Grant McLean <grant@catalyst.net.nz>) |
| Ответы |
Re: Deferrable triggers
|
| Список | pgsql-hackers |
On Thu, 7 Nov 2003, Grant McLean wrote: > On Fri, 2003-11-07 at 11:31, Stephan Szabo wrote: > > > > On Thu, 7 Nov 2003, Grant McLean wrote: > > > > > So it would seem that if I include the clauses: > > > > > > on delete restrict on update restrict > > > > > > Then the 'deferrable' which follows is only applied to creates and > > > not to updates or deletes. > > > > > > Since 'restrict' is the default, the clauses aren't adding any value > > > and can be omitted. In my case, the SQL is generated for me by > > > PowerDesigner. My workaround is to tweak the PowerDesigner output > > > definition to not include this line. > > > > > > I have seen this behaviour in both 7.2 and 7.3. Is it a bug? Or > > > am I misunderstanding something? > > > > Restrict is not the default, there is a difference between restrict and no > > action. In fact I believe the main point of restrict (which IIRC was added > > for sql99) is to allow you to have a deferred constraint that can do > > immediate checking of validity on pk changes. > > I was basing my reasoning on the CREATE TABLE documentation which says: > > NO ACTION > > Produce an error indicating that the deletion or update would create > a foreign key constraint violation. This is the default action. > > RESTRICT > > Same as NO ACTION. > > So as you pointed out, RESTRICT is not the default, but according to the > docs NO ACTION is the default and RESTRICT is the same as NO ACTION. > Is the difference between the two documented anywhere? Hmm, I don't think so actually. I'm surprised that we hadn't had that mistake pointed out before. The restrict entry should mention the fact that it's non-deferring. To -hackers: Is it still safe to send small documentation patches for 7.4 at this point?
В списке pgsql-hackers по дате отправления: