【问题标题】:get index from postgresql sequence using liquibase使用 liquibase 从 postgresql 序列中获取索引
【发布时间】:2014-05-27 06:24:15
【问题描述】:

我应该使用column 的什么属性来从postgresql sequence 获取索引值? valueNumeric? valueComputed?

据我了解,属性的值应该是nextval( 'simple_id_seq' )

【问题讨论】:

    标签: postgresql liquibase


    【解决方案1】:

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

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

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

    通常不需要使用 nextval(sequencer) ...它会自动填充 INSERT 上的列(在 INSERT 语句中,该列不应出现)。

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

    【讨论】:

      【解决方案2】:

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

      使用 valueComputed,您告诉 Liquibase 您正在传递一个类似 nextval('simple_id_seq') 的函数,它不会尝试将其解析为数字或进行任何引用。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-19
        • 2017-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多