;
を使用する ほとんどのデータベースのクエリでは、通常はステートメント構文自体の一部ではなく、個別のステートメントへのコマンドラインまたはスクリプト入力のターミネータであるため、機能しません。コマンドラインまたはスクリプトプロセッサは、ステートメントが完了し、サーバーに送信できることを示す信号としてセミコロンを認識します。
また、JDBCでは、単一のステートメントの準備(または実行)は1つにする必要があります 実際のステートメントなので、複数のステートメントは許可されないため、セミコロンを付ける必要もありません。一部の(ほとんどの?)データベースでは、セミコロンはステートメント構文の一部ではなく、単に構文エラーです。 1つ含める必要があります。
複数のステートメントを実行する場合は、別々の実行を使用する必要があります。技術的には、MySQLには、接続プロパティによって有効にできる複数の実行をサポートするオプションがあります。この動作はJDBC仕様/APIに準拠していないため、コードの移植性が低下します。 allowMultiQueries
を参照してください Driver / Datasource Class Names、 Connector/JのURL構文と構成プロパティ