我正在针对PostgreSQL 9.6 DB运行liquibase,并将dropDefaultValue更改为 NON-NULLABLE 列。
@echo off
for /F usebackq^ skip^=100^ delims^=^ eol^= %%i in ("testing.txt") do echo(%%i
我希望这会导致一条- dropDefaultValue:
columnDataType: VARCHAR(255)
columnName: bar
tableName: foo
指令(如文档中的建议https://www.liquibase.org/documentation/changes/drop_default_value.html所示),但我看到了:
DROP DEFAULT
具有这样的净效果,即该列仍然具有默认值(NULL)而不是根本没有默认值。这是可以预期的吗?
答案 0 :(得分:1)
我的实验表明,如果我跑步,0
行就会消失
pg_attrdef
但是也许有一些方法可以输入NULL行。
尽管如此,这很好,而且Liquibase并没有做错任何事情。 NULL是“默认ALTER TABLE ... ALTER ... SET DEFAULT NULL;
值”。
可以将一列定义为DEFAULT
,并且其默认值仍为NULL-唯一的结果就是您永远无法使用该列的默认值。