Scala 播放2.4 Slick 3.0-删除表中的所有行
我正在使用Slick 3.0访问Play 2.4中的PostgreSQL数据库,需要一种在不删除表的情况下删除表中所有行的方法 删除单行操作:Scala 播放2.4 Slick 3.0-删除表中的所有行,scala,sql-delete,postgresql-9.4,playframework-2.4,slick-3.0,Scala,Sql Delete,Postgresql 9.4,Playframework 2.4,Slick 3.0,我正在使用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子句来删除所有行。() 简单的解决方案db.run(tasks.delete)似乎没有任何作用,而且似乎没
lazy val tasks = TableQuery[Tasks]
def delete(id: Long) = db.run(tasks.filter(_.id === id).delete)
但我不知道如何在slick中实现一个空where子句来删除所有行。()
简单的解决方案db.run(tasks.delete)
似乎没有任何作用,而且似乎没有可用的truncate
函数
编辑:
db.run(tasks.delete)
有效,您只需等待将来完成即可。截断一个表需要一些SQL:db.run(sqlu“TRUNCATE table\u name RESTART IDENTITY;”)
既然您已经得到了答案,我想补充一点,您也可以使用scala.concurrent
包中的wait.result
函数,以防您想让程序等待db查询完成。查询如下所示:
Await.result(db.run(sqlu"TRUNCATE TABLE table_name RESTART IDENTITY;"),Duration.Inf))
请注意,
db.run
返回一个未来,您必须等待它完成。如果您对您的解决方案感到满意,请将其作为此问题的答案提交并接受。