gpt4 book ai didi

mysql - Slick 为 MySQL (MyISAM) 生成错误的 SQL

转载 作者:行者123 更新时间:2023-11-29 02:52:21 24 4
gpt4 key购买 nike

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

版本:

  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 之后,我写了一些简单的查询代码:

  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)
}

输出看起来像这样:

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,对吧?

出了什么问题?


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

object Tables extends { val profile = slick.driver.H2Driver } with demo.Tables

object Tables extends { val profile = slick.driver.MySQLDriver } with demo.Tables

对不起!

最佳答案

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

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

关于mysql - Slick 为 MySQL (MyISAM) 生成错误的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34354599/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com