0

如果使用 Squeryl 的条目尚不存在,我该如何插入?

如果在已经存在的元组上执行插入语句,我试图捕获 PSQLException,但它不起作用(未捕获 PSQLException)。事实上,最好告诉 Squeryl 不要插入已经存在的元组。这就是我正在寻找的。

4

2 回答 2

2

不幸的是,如果您使用 Postgres,如果发生异常,您将无法继续处理。这里有一个很好的讨论:https ://groups.google.com/forum/?fromgroups=#!topic/squeryl/zaflXRra0qg

要执行您要查找的内容,您可能希望首先发出一个选择以查找ids已经存在的内容并将它们从您要插入的项目中删除。

于 2013-04-25T11:30:35.320 回答
0

您根本不希望数据库中存在相同的元组,或者只有 squeryl 不会插入它们?

在第一种情况下,只需在该元组上添加一个唯一约束。例子:

on(myTable)(e => declare(
    columns(e.name, e.year) are (indexed("myIndex"), unique)
))

此代码将放置在表定义附近,例如val myTable = table[MyTable]. 我还在这个元组上添加了一个索引,如果你愿意,你可以删除这个代码。

于 2013-04-25T10:23:51.973 回答