【发布时间】: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