When we decided not to validate constraints on declaration, our reasoning
was that computations and database access were expensive and any decent
application programmer or DBA would always validate constraints before
declaring them and control access to the constrained items until the
constraint was successfully committed.

That was then.  Now, well, cycles are a lot easier to come by than good
developers.
I think it would be wise to add a [NO] VALIDATION modifier to constraint
definitions, including NOT NULL and referential integrity definitions.  In
the presence of a VALIDATION modifier, Firebird would begin enforcing the
constraint on commit (as now) and then start a pass to insure that the data
complies with the constraint.  I'd also be tempted to add a database
configuration option that makes validation the default.

Cheers,

Ann
------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to