PostgreSQL上的Liquibase dropDefaultValue映射到“ SET DEFAULT”而不是“ DROP DEFAULT”

时间:2019-07-19 11:57:53

标签: postgresql liquibase

我正在针对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)而不是根本没有默认值。这是可以预期的吗?

1 个答案:

答案 0 :(得分:1)

我的实验表明,如果我跑步,0行就会消失

pg_attrdef

但是也许有一些方法可以输入NULL行。

尽管如此,这很好,而且Liquibase并没有做错任何事情。 NULL是“默认ALTER TABLE ... ALTER ... SET DEFAULT NULL; 值”。

可以将一列定义为DEFAULT,并且其默认值仍为NULL-唯一的结果就是您永远无法使用该列的默认值。