如何在Firebird 2.5中移除列的非空约束?
Firebird 2.5 移除列非空约束的正确方法
你的SQL语句无效是因为Firebird 2.5不支持在修改列类型的TYPE子句中直接指定null来移除非空约束,语法逻辑错误。
正确的操作方式分两种情况:
仅移除非空约束(列类型无需修改)
直接执行DROP NOT NULL子句:ALTER TABLE ESTOQUE_GRUPO_SUBELEMENTO ALTER COLUMN ID_SUBELEMENTO DROP NOT NULL;同时修改列类型并移除非空约束
需要将两个操作分开,用逗号分隔或者分两次执行:
方法一(单语句多操作):ALTER TABLE ESTOQUE_GRUPO_SUBELEMENTO ALTER COLUMN ID_SUBELEMENTO TYPE int, ALTER COLUMN ID_SUBELEMENTO DROP NOT NULL;方法二(分两次执行):
ALTER TABLE ESTOQUE_GRUPO_SUBELEMENTO ALTER COLUMN ID_SUBELEMENTO TYPE int; ALTER TABLE ESTOQUE_GRUPO_SUBELEMENTO ALTER COLUMN ID_SUBELEMENTO DROP NOT NULL;
注意:如果该列关联了外键、索引等其他约束,需要先处理这些依赖项才能成功修改列的非空属性。
内容的提问来源于stack exchange,提问作者Diego Alves
相关产品推荐
相关产品推荐

