【发布时间】:2019-07-23 16:35:33
【问题描述】:
如何使用 liquibase 在 PostgreSQL 中的列上使用“startWith”设置自动增量属性?
由于某种原因,它总是从 1 开始。我尝试使用自定义序列,但这也无济于事。
<column autoIncrement="true" startWith="100" name="id" type="bigint">
这是我当前的列定义,它不起作用。
编辑:
我想使用 liquibase 从 csv 导入数据。我尝试了以下方法:
<changeSet author="author" id="createSequence">
<createSequence
incrementBy="1"
sequenceName="mytable_id_seq"
startValue="1000"/>
</changeSet>
</changeSet>
<changeSet author="author" id="1-mytable">
<createTable tableName="mytable">
<column name="id" type="BIGSERIAL" defaultValueComputed="nextval('mytable_id_seq')">
<constraints primaryKey="true" primaryKeyName="mytable_pkey"/>
</column>
</createTable>
<loadData encoding="UTF-8"
file="liquibase/data/mytable.csv"
separator=","
tableName="mytable">
</loadData>
</changeSet>
如果我尝试这样做,我会收到以下错误“序列“table_id_seq”的currval 尚未在此会话中定义”,我认为它使用来自公共模式的序列,而不是我设置为 liquibase 的序列。
- 我尝试的另一件事是手动更新它:
ALTER SEQUENCE mytable_id_seq 以 100 重新启动;
在这种情况下,使用的序列是来自公共模式的序列,但我想使用设置为 liquibase 的模式
【问题讨论】:
-
关注liquibase版本bigserial columns not created as auto-increment
标签: java postgresql liquibase