Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.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 播放2.4 Slick 3.0-删除表中的所有行_Scala_Sql Delete_Postgresql 9.4_Playframework 2.4_Slick 3.0 - Fatal编程技术网

Scala 播放2.4 Slick 3.0-删除表中的所有行

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)似乎没有任何作用,而且似乎没

我正在使用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)
似乎没有任何作用,而且似乎没有可用的
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
返回一个未来,您必须等待它完成。如果您对您的解决方案感到满意,请将其作为此问题的答案提交并接受。