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.