如何知道ScalaQuery中是否存在数据库表
发布时间:2020-05-23 06:43:08 所属栏目:MsSql 来源:互联网
导读:我正在尝试 ScalaQuery,这真的很棒.我可以使用Scala类定义数据库表,并轻松查询. 但是我想知道,在下面的代码中,我如何检查一个表是否存在,所以我不会调用“Table.ddl.create”两次,当我运行这个程序两次得到一个异常? object Users extends Table[(Int, Strin
|
我正在尝试 ScalaQuery,这真的很棒.我可以使用Scala类定义数据库表,并轻松查询. 但是我想知道,在下面的代码中,我如何检查一个表是否存在,所以我不会调用“Table.ddl.create”两次,当我运行这个程序两次得到一个异常? object Users extends Table[(Int,String,String)]("Users") {
def id = column[Int]("id")
def first = column[String]("first")
def last = column[String]("last")
def * = id ~ first ~ last
}
object Main
{
val database = Database.forURL("jdbc:sqlite:sample.db",driver = "org.sqlite.JDBC")
def main(args: Array[String]) {
database withSession {
// How could I know table Users is alrady in the DB?
if ( ??? ) {
Users.ddl.create
}
}
}
}
解决方法ScalaQuery版本0.9.4在org.scalaquery.meta包中包含许多有用的SQL元数据包装器类,例如MTable:http://scalaquery.org/doc/api/scalaquery-0.9.4/#org.scalaquery.meta.MTable 在ScalaQuery的测试代码中,我们可以看到正在使用的这些类的示例.特别是,请参阅org.scalaquery.test.MetaTest. 我写了这个小功能给我一张所有已知表的地图,由表名键入. import org.scalaquery.meta.{MTable}
def makeTableMap(dbsess: Session) : Map[String,MTable] = {
val tableList = MTable.getTables.list()(dbsess);
val tableMap = tableList.map{t => (t.name.name,t)}.toMap;
tableMap;
}
所以现在,在创建一个SQL表之前,我可以检查“if(!tableMap.contains(tableName))”. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql – rails控制台和Rails服务器日志中的输出颜色是什么意
- sqlserver只有MDF文件恢复数据库的方法
- SQL Server 数据库备份和还原认识和总结(二)
- sql – 更快’从oracle中的table1’中选择distinct thing_i
- SQL Server自己收集比较强大的分页存储过程 推荐
- sql – ActionView :: Template :: Error(PG :: UndefinedF
- sql – 如何从数据库中删除所有内容(表,视图,存储过程,函数
- SQL Server批量替换语句 在SQL SERVER中批量替换字符串的方
- sql – 带有SubQueries和Group Functions的Oracle-Bug
- 相当于SQLServer函数SCOPE_IDENTITY()在mySQL中?
