On 2016-06-02 6:20, [email protected] [firebird-support] wrote: >> What value must it have? Add a default clause to this statement. Or > add > > the field as nullable, populate with data and then alter to NOT > NULL. > > I have tried to add field as nullable, then tried to alter to not > null. > > UPDATE TMP_RPT SET ID1 = 5; Commit; > (This statement is OK) > > UPDATE RDB$RELATION_FIELDS SET RDB$NULL_FLAG = 1 > WHERE RDB$FIELD_NAME = ID1 AND RDB$RELATION_NAME = TMP_RPT; > (This statement raised an error, FB 3.0 doesnt allow SysDBA user to > change System table)
This is documented in the Firebird 3 release notes: * Firebird 3 no longer allows direct modification of the system tables (bar some exceptions), see http://firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-compat-systables.html. * You can now modify the nullability through DDL with ALTER TABLE <table name> ALTER <field name> { DROP | SET } [NOT] NULL, see http://firebirdsql.org/file/documentation/release_notes/html/en/3_0/rnfb30-ddl-enhance.html#rnfb30-ddl-managenull Mark
