mysql-如何使用squeryl从表中删除所有记录?

我研究了使用squeryl从表中删除所有记录的方法.我唯一能想到的是

myTable.deleteWhere(r => r.id.isNotNull)  //id is the primary key

这似乎很奇怪,可能效率很低.

使用squeryl时,从表中删除所有记录的最干净方法是什么?

解决方法:

deleteWhere子句采用任何逻辑布尔值,因此您可以简单地说:

myTable.deleteWhere(r => 1 === 1) 

应该输出以下语句:

DELETE FROM mytable WHERE 1 = 1

如果要自动消除where子句,可以尝试:

myTable.deleteWhere(r => 1 === 1.inhibitWhen(true))

哪个应该完全禁止where子句.

如果您正在寻找一种更高效的方法,并且您的数据库支持TruncATE或其他等效功能,则可以从org.squeryl.Session获取java.sql.Connection并直接通过JDBC发出查询.不幸的是,这将丢失Squeryl提供的某些类型的安全性.

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...