Firebird 列可空非空修改
2018-12-04
至少到Firebird 3.0.4 已经添加了设置可空 和 非空的语法:如
-- 删除非空(设置为可空)
ALTER TABLE TECH
ALTER label drop NOT NULL
-- 设置为非空
ALTER TABLE TECH
ALTER label SET NOT NULL
以下是以前版本,可修改系统表:
1、修改为非空
UPDATE RDB$RELATION_FIELDS SET RDB$NULL_FLAG = 1
WHERE RDB$FIELD_NAME = 'C1' AND RDB$RELATION_NAME = 'T1';
2、修改为可空
UPDATE RDB$RELATION_FIELDS SET RDB$NULL_FLAG = NULL
WHERE RDB$FIELD_NAME = 'C1' AND RDB$RELATION_NAME = 'T1';
T1 = 表名
C1 = 列名
note:若改为非空,修改完要保证列数据不能有空值。
Firebird3以后以上系统表不能再手动编辑了。
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
UPDATE operation is not allowed for system table RDB$RELATION_FIELDS.
posted on 2018-09-22 09:21 jonney_wang 阅读(520) 评论(0) 编辑 收藏 举报