Subject | Re: [firebird-support] Re: FB 3.0, got problem when add field to Table with existing data |
---|---|
Author | Mark Rotteveel |
Post date | 2016-06-02T07:34:56Z |
On 2016-06-02 6:20, trskopo@... [firebird-support] wrote:
* 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
>> What value must it have? Add a default clause to this statement. OrThis is documented in the Firebird 3 release notes:
> 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)
* 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