0

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;

4

1 に答える 1

0

推測ですが、クエリごとに 1 つのコマンドしか送信できない可能性があります。したがって、それらを ; で区切ります。個別に問い合わせます。この問題は別の言語で発生しました。

于 2011-06-08T20:18:35.987 に答える