2

そのため、データベースにデータを挿入するための JDBC 呼び出しがあります。

ステートメント全体を表示できるようにしたいと思います (つまり、「some_table (colA, colB) の値 (1,2) に挿入する」)。

しかし、私はまた、この声明を実際にあるものとして見たいと思います-つまり、

insert into some_table (id, colA, colB) values (8,1,2)

ここで、id は主キー (またはその他の auto_increment フィールド) であり、自動インクリメントされた値を決定する SQL が何であるかを示します。

これは可能ですか?

4

1 に答える 1

3

発言は変わりません。テーブルに自動インクリメント キー ( ID) がある場合、ステートメントには表示されませんが、ステートメントの実行時に DB エンジンによって追加されます。

そのため、ID 列を含むステートメントを表示することはできませんが、DBMS によっては、自動生成された値が何であったかを判断するさまざまな手法があります。

すなわち。SQL Server では、SCOPE_IDENTITY()を使用できます。Oracle では、 RETURNING INTOを使用できます。Postgres については、Can I use return value of INSERT...RETURNING in another INSERT? を参照してください。

于 2013-03-10T21:24:06.853 に答える