Skip to content

複数ステートメントのコマンドのパラメーターバインディングに不具合がある可能性について #23

Description

@nira-yusan

以下のような複数ステートメントのコマンドのパラメーターバインディングを行いたいのですが、エラーになります。

BEGIN;
INSERT INTO Test(ID) VALUES ($1);
COMMIT;

色々調べてみると、「$1」というパラメーターを記述しているはずなのにコマンドのパラメーター数が0のようでした。

次に、以下のような単数ステートメントのコマンドで調べてみたところ、こちらはパラメーター数が1でパラメーターバインディングも行えました。

SELECT * FROM Test WHERE ID = $1;

さらに、以下のような複数ステートメントのコマンドで調べてみたところ、パラメーター数が2で、1つ目のステートメントに含まれる「$1」と「$2」のパラメーターバインディングは問題なく、2つ目のステートメントに含まれる「$3」のパラメーターバインディングでエラーになりました。

SELECT * FROM Test WHERE ID = $1 AND ID = $2;
SELECT * FROM Test WHERE ID = $3;

これらの結果を踏まえ、複数ステートメントのコマンドのパラメーターバインディングは最初のステートメントの分しか行えない可能性があると考えたのですが、これは意図された仕様でしょうか?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions