我想在 TIMESTAMP WITH TIME ZONE 类型的表上有一个列,但它默认为插入行的时间。我们使用 Liquibase,所以我想使用标准的 Liquibase 语法来完成这项工作。
我希望它看起来像:
<changeSet author="chuck" id="2012-07-24.1">
<addColumn tableName="foo">
<column name="createdOn" type="timestamp" defaultValue="LOCALTIMESTAMP">
<constraints nullable="false"/>
</column>
</addColumn>
</changeSet>
这将生成 SQL:
ALTER TABLE foo ADD "createdOn" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT 'LOCALTIMESTAMP';
我可以修改此语句并删除 LOCALTIMESTAMP 周围的单引号,它将在 psql 中执行。
ALTER TABLE foo ADD "createdOn" TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT LOCALTIMESTAMP;
有没有其他人在使用 Liquibase 和 PostgreSQL 时遇到过这种情况?我可以将其重写为一个声明作为一种解决方法,但我想尝试以 Liquibase 的方式执行此操作。