Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala InsertOrUpdate在Slick中-不使用主键时_Scala_Slick - Fatal编程技术网

Scala InsertOrUpdate在Slick中-不使用主键时

Scala InsertOrUpdate在Slick中-不使用主键时,scala,slick,Scala,Slick,我们正在Scala项目中使用Slick。我们需要在一个模块中执行Upsert操作(插入/更新)。我们知道的一种方法是简单地使用SQL语句并执行它,但现在我们希望使用Slick来执行它 因为我们使用的Slick版本支持InsertOrUpdate()操作,所以我们希望使用它。现在有一个问题:- 我们的表有一个主键,即设置为自动递增的索引。我们要做的upsert操作是在一个事务id上进行的,虽然该事务id应该是唯一的,但在数据库中没有标记为unique或primary key 如何处理这种情况?我尝

我们正在Scala项目中使用Slick。我们需要在一个模块中执行Upsert操作(插入/更新)。我们知道的一种方法是简单地使用SQL语句并执行它,但现在我们希望使用Slick来执行它

因为我们使用的Slick版本支持InsertOrUpdate()操作,所以我们希望使用它。现在有一个问题:-

我们的表有一个主键,即设置为自动递增的索引。我们要做的upsert操作是在一个事务id上进行的,虽然该事务id应该是唯一的,但在数据库中没有标记为unique或primary key


如何处理这种情况?我尝试通过首先检查表,然后插入/更新来手动实现Upsert,但在生产环境中,当每秒有许多请求传入时,这是失败的,我们有2次插入,大约占结果的1%。

您提到的纯SQL解决方案是什么?