我正在使用 Slick 3.0 访问 Play 2.4 中的 PostgreSQL 数据库,并且需要一种方法来删除表中的所有行而不删除它。
删除单行有效:
lazy val tasks = TableQuery[Tasks]
def delete(id: Long) = db.run(tasks.filter(_.id === id).delete)
但是我不知道如何在 slick 中实现一个空的 where 子句来删除所有行。(如 PostgreSQL 文档中所见)
简单的解决方案db.run(tasks.delete)
似乎没有做任何事情,似乎没有可用的truncate
功能。
编辑:
db.run(tasks.delete)
工作,你只需要等待未来完成。截断表需要一些 SQL db.run(sqlu"TRUNCATE TABLE table_name RESTART IDENTITY;")
:.