首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >巧妙地为MySQL (MyISAM)生成坏的SQL

巧妙地为MySQL (MyISAM)生成坏的SQL
EN

Stack Overflow用户
提问于 2015-12-18 11:26:56
回答 1查看 501关注 0票数 2

我想使用最新的Slick (3.1.1)来分析遗留的mysql数据库(myisam engine)。

版本:

代码语言:javascript
复制
  scalaVersion := "2.11.7"
  "com.typesafe.slick" %% "slick" % "3.1.1"
  "com.typesafe.slick" %% "slick-codegen" % "3.1.1"
  "org.slf4j" % "slf4j-nop" % "1.7.13"
  "mysql" % "mysql-connector-java" % "5.1.38"

在使用slick.codegen.SourceCodeGenerator从我的数据库生成Tables.scala之后,我编写了一些简单的查询代码:

代码语言:javascript
复制
  val query = Users map { _.firstname }
  val action = query.result
  val future = db.run(action)
  future onSuccess {  
    case result => println("result: " + result)
  }
  future onFailure {
    case t => 
        println("Got an error: " + t.getMessage)
        println("SQL: " + action.statements.head)   
  }

输出如下所示:

代码语言:javascript
复制
Got an error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"Users"' at line 1
SQL: select "FirstName" from "Users"

那些引号在我看来不对。应该是select FirstName from Users,对吧?

哪里出了问题?

更正:这是我的一个简单的复制和粘贴错误。我忘了换那个

代码语言:javascript
复制
object Tables extends { val profile = slick.driver.H2Driver } with demo.Tables

使用

代码语言:javascript
复制
object Tables extends { val profile = slick.driver.MySQLDriver } with demo.Tables

抱歉的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-18 11:34:17

如果MySQL在ANSI_QUOTES SQL模式下运行,可以使用双引号转义表名和列名。

有关SQL模式的更多信息,请参见http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34354599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档