2017-09-07 115 views
1

我試圖找到一個光滑Table,其主鍵執行插入的方式是自動遞增,但強制主鍵的映射情況下類的值。即給定:插入的表pirmary鍵自動遞增

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被設置爲值?

+0

你想在什麼爭食ID的情況下,會發生什麼? – mfirry

+0

@mfirry此代碼爲試驗過程中加載初始數據。我不打算使用此功能,在生產代碼爲您精確指定的原因 –

回答

3

結帳forceInsert

件可在第一[...]列,其 自動遞增被自動忽略,所以插入他們是有點出人意料具有 沒有影響。使用forceInsert允許實際插入 自動遞增列。

來源:Coming from SQL to Slick

相關問題