2016-04-07 10 views
-1

私はこのようなテーブルを持っているに挿入する方法、JDBC:自動的にプライマリキーを生成し、データベース

テーブルラフを作成します(IDのVARCHAR(25)主キー、名前のVARCHAR(30));

iidの主キーをjdbc helpから自動的に挿入する必要がありますか?

+0

ここで説明します。http://stackoverflow.com/questions/9733085/auto-increment-for-oracle – RubioRic

答えて

0
EG- は(名前をid)をラフに挿入sequence.nextval であなたのIDを入力する値句の下にOracleでとyur INSERT文でシーケンスを定義

JDBCは自動的にIDを生成しません。それは通常それを行うデータベースですが、データベースでさえも、トリガーを使用しないでVARCHAR(25)のものを生成しません。

データベース生成キーを取得する場合は、con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);を使用できますが、これはおそらくトリガー生成値では機能しません。

+1

[これを行う](http://stackoverflow.com/a/32114047/266304)たとえそれらがトリガによって生成されたとしてもしかし、あなたは文字列キーのためにそれをするでしょう... –

+0

Oracleの場合、 'Statement.RETURN_GENERATED_KEYS'を使うことができます。生成されたIDを返さないという事実を処理する必要がありますが、' ROWID'、これを使用して行を照会し、実際に生成されたIDを取得することができます。 –

0

値(your_sequence.nextval、 '名前')

0

Oracleデータベースでシーケンスを定義し、シーケンスのカスタム生成メソッドを指定することもできます。また、ユーザーからの値を提供するのではなく、値を表に挿入する場合は、以前に生成されたSequenceを使用して、主キーを挿入することができます。

関連する問題