【问题标题】:Start generating auto increment column value from default in slick开始从 slick 中的默认值生成自动递增列值
【发布时间】:2014-02-13 14:07:23
【问题描述】:

我有一个表格列保存自动增量值。我想从指定的值开始递增。 如何在 slick ddl 中指定此功能。

我在 slick 中用于创建表列的代码是:

def id = column[Long]("id", O.PrimaryKey, O.AutoInc, O.NotNull)

我遇到过this 的文章,但没有找到确切的解决方案。

create table "COCKTAIL" (
  "ID" BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 100000) NOT NULL PRIMARY KEY,
  "NAME" VARCHAR NOT NULL)

谁能帮我实现这个目标。

【问题讨论】:

    标签: scala playframework-2.0 slick play-slick


    【解决方案1】:

    O.Default(...) 呢?看这里:ColumnOption

    def id = column[Long]("id", O.PrimaryKey, O.AutoInc, O.NotNull,O.Default(100000))
    

    【讨论】:

    • 我试过这个选项。它抛出多个初始化异常:错误:为表的列“id”指定了多个默认值
    • 尝试删除“O.PrimaryKey”(可能设置了默认值)或使用“Default(100000)”。
    • 似乎 Default 会给出一个默认值。我不希望它成为默认值。我想从该默认值递增。只有第一行值应该从那里开始
    • 那么你应该设置第一条记录的id的值。
    • 插入后,我将记录 id 更新为 10000,然后插入第二个。它仍然从 0 开始计数。在这种情况下,新插入的记录 id 是一个......这也不起作用
    猜你喜欢
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2017-11-03
    • 2011-12-29
    • 2012-01-16
    • 1970-01-01
    相关资源
    最近更新 更多