2017-02-16 43 views
6

我用PostgreSQL 9.6.1,Plya使用slick! 2.5和play-slick 2.0.2。油滑3:insertOrUpdate不起作用

(我也用油滑第0.14.3,但我不認爲在這裏改變任何東西。)

我使用insertOrUpdate在一個非常直接的方式,但我仍然得到一個唯一的例外。

我有一個非常簡單的測試使用insertOrUpdate: 如果我跑了好幾次,我總是得到一個SQL異常:

def clientId = column[String]("client_id", O.PrimaryKey) 

ERROR: duplicate key value violates unique constraint "ga_client_id_pkey" 
    Detail: Key (client_id)=(1885746393.1464005051) already exists 

然而,我的表是用client_id作爲主鍵定義

和隨後在SQL定義:

client_id TEXT NOT NULL UNIQUE PRIMARY KEY 

只是測試的功能作用:

db.run(gaClientIds.insertOrUpdate(gaClientId)) 

和控制器簡單地調用這個方法並沒有別的。

奇怪的是,多次啓動方法本身不會導致錯誤,但控制器雖然只會調用該方法,但仍會執行。

insertOrUpdate漂亮的功能還不確定,還是我錯過了什麼?

+0

同樣的問題我與slick3側實現支持。 2.1。 @Simon你找到了解決方案嗎? – Stoecki

+0

不幸的是,我發現的唯一解決方案是用普通的sql編寫數據庫調用... – Simon

+0

這也是我的解決方案以及 – Stoecki

回答