使用自动递增为表插入pirmary键

时间:2017-09-07 05:52:55

标签: scala slick

我试图找到一种方法,在主键为自动增量的弹出Table上执行插入,但强制主键到映射的case类中的值。即给出:

case class Foo(id: Int, name: String)

class FooTable(tag: Tag) extends Table[Foo](tag, "foo") {
  def id = column[Int]("id", O.PrimaryKey, O.AutoInc)

  def name = column[String]("name")

  def * = (id, name) <> (Foo.tupled, Foo.unapply)
}

val foos = TableQuery[FooTable]

如果我通过

进行常规插入
db.run(foos += Foo(123,"bar"))

它会将id设置为下一个自动增量值,而不是将其设置为123.是否存在强制id设置为的语法提供的案例类Foo中的值?

1 个答案:

答案 0 :(得分:3)

结帐forceInsert

  

插入可能在第一个[...]列中有点令人惊讶   自动增加会自动被忽略,因此插入它们有   没有效果。使用forceInsert允许实际插入   自动增量列。

来源:Coming from SQL to Slick