使用liquibase从postgresql序列中获取索引

时间:2014-05-26 08:46:16

标签: postgresql liquibase

为了从postgresql column获取索引值,我应该使用sequence的哪个属性? valueNumericvalueComputed

据我所知,属性的值应为nextval( 'simple_id_seq' )

2 个答案:

答案 0 :(得分:2)

在postgresql中,序列值创建为INTEGER或BIGINT。

通常这是通过使用SERIAL或BIGSERIAL作为列类型来完成的......但是会间接创建int或bigint的序列器,并将列的默认值设置为nextval(sequencer)。

在表数据的结果集中,该列包含int或bigint。

Normaly没有必要使用nextval(sequencer)...它会自动填充INSERT列(在INSERT状态中,列不会出现)。

请参阅http://www.postgresql.org/docs/9.3/static/datatype-numeric.html

答案 1 :(得分:2)

如果您不想按照@double_word_distruptor的建议使用SERIAL或BIGSERIAL,请使用valueComputed。

使用valueComputed,你告诉Liquibase你传递的函数就像nextval('simple_id_seq'),它不会尝试将它解析为数字或做任何引用。

您也可以使用valueSequenceNext =“simple_id_seq”来获得一点跨数据库兼容性。