【问题标题】:Difference between MySQL workbench and mysql-connector-java-5.1.15MySQL工作台和mysql-connector-java-5.1.15的区别
【发布时间】:2011-09-11 00:11:45
【问题描述】:

我正在尝试使用 mysql-connector-java-5.1.15 通过 ant 任务在 mysql 服务器上运行以下 sql 脚本,但它不起作用,并且在第三个命令上出现以下错误。我可以让其他脚本从 ant 正常工作,所以这不是连接问题。

您的 SQL 语法有错误;检查对应的手册
您的 MySQL 服务器版本,以便在 'DROP TABLE IF 附近使用正确的语法
存在`tmp_cui_desc`;
创建表`tmp_cui_desc`(
    CUI CHAR(8' 在第 15 行

奇怪的是,该脚本在连接到同一台服务器的 MySql 工作台 (v5.2.31) 中运行良好。为什么会这样?数据库是 latin1,字符集系统是 uft8。这可能是问题的一部分吗?如果是这样,我需要做什么来修复它?

非常感谢任何帮助 抢。

使用 umls; /* * 创建 umls_mrconso 表的摘要视图,该表将大部分细节从原子抽象为概念 * 这是一个表,每个 CUI 有一行 * */ /* * 根据给定 cui 的来源创建一个临时表 */ 如果存在则删除表 tmp_cui_sabs; 创建表 tmp_cui_sabs ( CUI CHAR(8) 非空, SABS VARCHAR(255), 主键 (CUI) ) 选择 u.CUI 作为 CUI, GROUP_CONCAT(DISTINCT u.SAB ORDER BY u.SAB ASC SEPARATOR '|') 作为 SABS FROM umls_mrconso 你 由 u.CUI 分组; /* * 创建一个临时表,其中包含任何给定 cui 的最佳可用描述 */ 如果存在则删除表 tmp_cui_desc; 创建表 tmp_cui_desc ( CUI CHAR(8) 非空, 术语 VARCHAR(255), 主键 (CUI) ) 选择 u.CUI 作为 CUI, MIN(u.STR) 作为 TERM FROM umls_mrconso 你 其中 u.ISPREF='Y' 和 u.LAT='ENG' 和 u.TS='P' 由 u.CUI 分组; /* * 创建一个永久表作为 2 个临时表的连接 * 包含首选描述,以及映射到此 cui 的所有来源, * 以及 CUI 本身。 * TODO:在此处也包含语义类型信息是否有用? */ 如果存在则删除表 bmj_cui_summary; 创建表 bmj_cui_summary ( CUI CHAR(8) 非空, 术语 VARCHAR(255), SABS VARCHAR(255), 主键 (CUI) ) 选择 sabs.CUI 作为 CUI, LOWER(descs.TERM) 作为 TERM, sabs.SABS 作为 SABS 从 tmp_cui_sabs sabs, tmp_cui_desc 描述 WHERE sabs.CUI=descs.CUI; /* * 清理 tmp 表 */ 如果存在则删除表 tmp_cui_sabs; 如果存在则删除表 tmp_cui_desc;

【问题讨论】:

  • 不知道 jdbc,但通常你只能通过 c-lib 提交一个 sql 语句。 (我猜jdbc也使用它)。如果你使用ant,你不能直接调用mysql客户端。例如mysql -uusername -ppassword < sqlfile.sql

标签: mysql ant jdbc mysql-workbench


【解决方案1】:

只是一个猜测,但您可能每个查询只能发送一个命令。所以用 ; 将它们分开并单独查询。我用不同的语言遇到了这个问题。

【讨论】:

  • 似乎可以发送多个命令,但是jdbc引擎在提交之前做了一些查询解析。在这种情况下,它不喜欢 * *\ 注释样式,并且一旦用 # 语法替换它就可以工作
猜你喜欢
  • 2016-03-14
  • 1970-01-01
  • 2018-08-29
  • 1970-01-01
  • 2019-09-17
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
相关资源
最近更新 更多