为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:windows
【CPU】:
【问题描述】*:通过ALTER TABLE MODIFY 修改字段的时候,原来创建表时候字段是not null ,修改的时候没有显示指定null,就还是not null么
例如:
CREATE TABLE "SYSDBA"."alter_null_test"
(
"ID" BIGINT NOT NULL,
"ORDER" INT NOT NULL,
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
ALTER TABLE "SYSDBA"."alter_null_test" MODIFY "ORDER" int default 0
修改后查看建表语句
CREATE TABLE "SYSDBA"."alter_null_test"
(
"ID" BIGINT NOT NULL,
"ORDER" INT DEFAULT 0 NOT NULL,
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
如果不限制指定某些限制,就还保留原来字段的限制?
修改默认之前已经NOT NULL约束,后面插入的数据必须是非空值。如果当时表中有数据并且这个ORDER列有空值,后面定义成非空约束是会失败的。
修改默认值之后 ,以后新插入的数据可以自动 default 0补填。