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