JDBCインサートでキーを自動生成できる一般的なRDMSがありますか?たとえば、私は、主キー、IDを持つテーブル、およびint型の値がある場合:SQL ServerのJDBCインサートでキーを自動生成
create table test (
id int not null,
myNum int null
)
を、私はjava.sql.SQLExceptionを取得挿入
PreparedStatement statement = connection.prepareStatement("insert into test(myNum) values(?)", Statement.RETURN_GENERATED_KEYS);
statement.setInt(1, 555);
statement.executeUpdate();
statement.close();
の操作を行います。値を挿入することはできませんがNULLを列 'id'に挿入します。
私はこれが完全にRDMSに依存していると感じています。私たちはSQL Server 2005を使用しており、私は運がないテーブルで
CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 1) ON [PRIMARY]
を設定しました。
DB2では、ID列とシーケンスのどちらかを選択できます。私は他のrdbmsのためにこの数をイメージすることもできます。 – rudolfson
清算していただきありがとうございます。しかし、これは他のrdbmsには当てはまりません。少なくともOracleにとってはそうではありません。 –