2017-02-16 62 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

回答