mysql-connector-java-5.1.15 を使用して Ant タスクを介して mysql サーバーで次の SQL スクリプトを実行しようとしていますが、機能せず、3 番目のコマンドで次のエラーが発生します。ant から他のスクリプトを正常に動作させることができるので、接続の問題ではありません。
SQL 構文にエラーがあります。に対応するマニュアルを確認してください 'DROP TABLE IF の近くで使用する正しい構文については、MySQL サーバーのバージョン EXISTS `tmp_cui_desc`; CREATE TABLE `tmp_cui_desc` ( CUI CHAR(15 行目の 8'
奇妙なことに、スクリプトは、同じサーバーに接続された MySql ワークベンチ (v5.2.31) で完全に正常に動作します。それはなぜですか?データベースは latin1 で、文字セット システムは uft8 です。これは問題の一部でしょうか?もしそうなら、それを修正するために何をする必要がありますか?
ロブの助けに心から感謝します。
UML を使用します。 /* * umls_mrconso テーブルの要約ビューを作成し、アトムから概念までの詳細のほとんどを抽象化します * これは、CUI ごとに 1 行のテーブルです * */ /* * 特定の cui のソースに基づいて一時テーブルを作成する */ DROP TABLE IF EXISTS tmp_cui_sabs; CREATE TABLE tmp_cui_sabs ( CUI CHAR(8) NOT NULL、 SABS VARCHAR(255)、 主キー (CUI) ) 選択する u.CUIとしてのCUI、 GROUP_CONCAT(DISTINCT u.SAB ORDER BY u.SAB ASC SEPARATOR '|') as SABS FROM umls_mrconso u GROUP BY u.CUI; /* * 任意の cui について利用可能な最適な説明を含む一時テーブルを作成する */ DROP TABLE IF EXISTS tmp_cui_desc; CREATE TABLE tmp_cui_desc ( CUI CHAR(8) NOT NULL、 TERM VARCHAR(255)、 主キー (CUI) ) 選択する u.CUIとしてのCUI、 TERM としての MIN(u.STR) FROM umls_mrconso u WHERE u.ISPREF='Y' AND u.LAT='ENG' AND u.TS='P' GROUP BY u.CUI; /* * 2 つの一時テーブルを結合して永続テーブルを作成する * 好ましい説明と、この cui にマップされるすべてのソースが含まれています。 * CUI自体と同様。 * TODO: ここにもセマンティック型情報を含めると便利ですか? */ DROP TABLE IF EXISTS bmj_cui_summary; CREATE TABLE bmj_cui_summary ( CUI CHAR(8) NOT NULL、 TERM VARCHAR(255)、 SABS VARCHAR(255)、 主キー (CUI) ) 選択する sabs.CUI は CUI として、 LOWER(descs.TERM) を TERM として、 sabs.SABS as SABS から tmp_cui_sabs サブ、 tmp_cui_desc デスク WHERE sabs.CUI=descs.CUI; /* * 一時テーブルをクリーンアップ */ DROP TABLE IF EXISTS tmp_cui_sabs; DROP TABLE IF EXISTS tmp_cui_desc;