Subject Re: Is this a bug or intended behaviour?
Author Thomas
--- In, "Ann W. Harrison"
> Err, well the assumption that it should work because the deletes are
> all in the same transaction is wrong. Firebird doesn't do deferred
> constraints (yet).

> I think it should work because all the deletes are
> in the same statement and (in theory) the constraint should be checked
> at the end of the statement, not row-by-row.

Yes, sorry I should have written "single statement" instead of "single transaction". I'm aware of the difference (and I do miss deferred constraints in FB ;) )

> However, most everything
> in Firebird is row-by-row, so this is consistent, if not correct.

I was only a bit surprised as the other databases, that I'm using got this "right".
So my expectactions were set..

> Did you try
> delete from fktest where id in (4, 3, 2, 1);

No difference.

But thanks for the answer.

We'll simply have to split that into single deletes. It's a bit of a pain though, as the real use case has a lot more IDs in it, but that's probably more portable anyway.