我正在尝试使用 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;