我用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
漂亮的功能还不确定,还是我错过了什么?
同样的问题我与slick3侧实现支持。 2.1。 @Simon你找到了解决方案吗? – Stoecki
不幸的是,我发现的唯一解决方案是用普通的sql编写数据库调用... – Simon
这也是我的解决方案以及 – Stoecki