让我们考虑一下这个表:如何有条件地进行行插入,即INSERT INTO与WHERE NOT EXISTS?
case class FavoriteStore(userId: Long, storeId: Long)
class FavoriteStoreTable(tag: Tag)
extends Table[FavoriteStore](tag, "FAVORITE_STORE") {
def userId = column[Long]("USER_ID")
def storeId = column[Long]("STORE_ID")
override def * = (userId, storeId) <>
(FavoriteStore.tupled, FavoriteStore.unapply)
}
我希望能写下面的SQL查询:
+----------+----------+
| user_id | store_id |
+----------+----------+
| 39 | 8 |
| 8 | 39 |
| 5 | 11 |
+----------+----------+
我用油滑与(删除索引&外键,以简化IT)映射它与斯利克:
INSERT INTO favorite_store (user_id, store_id) VALUES (39, 8)
WHERE NOT EXISTS
(SELECT * FROM favorite_store WHERE user_id = 39 AND store_id = 8)
任何想法?
油滑目前不支持WHERE NOT EXISTS。请打开功能请求:https://github.com/slick/slick/issues/new – cvogt
谢谢@cvogt,会做。 – n1r3