JDBI を使用してテーブル パーティションを変更する際に問題が発生しました。実行しようとしているクエリの例を次に示します。
ALTER TABLE table1 DROP PARTITION P_1
テーブル「table1」からパーティション「P_1」を削除すると、これは MySQL で正常に実行されます。
次のようにJavaコードに実装しました。
@SqlUpdate("ALTER TABLE table1 DROP PARTITION :partition;")
public void deletePartition(@Bind("partition") String partition);
そして、この関数をそのように呼び出します
deletePartition("P_1")
ただし、これにより次のエラーが発生します。
原因: org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SQL 構文にエラーがあります。1 行目の ''P_1'' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください [ステートメント:"ALTER TABLE table1 DROP PARTITION :partition;", located:"ALTER TABLE table1 DROP PARTITION :partition; "、書き換え:"/* HiveDropBoxDBI.deletePartition */ ALTER TABLE table1 DROP PARTITION ?;"、引数:{位置:{}、名前付き:{パーティション:'P_1'}、ファインダー:[]}]
この機能はサポートされていませんか? または、構文に何か不足していますか?
ありがとう