Есть ли общий, перекрестный RDMS, способ, которым у меня может быть ключ, созданный с помощью вставки JDBC? Например, если у меня есть таблица с первичным ключом, идентификатор и целочисленное значение:Автоматический генерировать ключ на вставке JDBC в SQL Server
create table test (
id int not null,
myNum int null
)
и делать вставки
PreparedStatement statement = connection.prepareStatement("insert into test(myNum) values(?)", Statement.RETURN_GENERATED_KEYS);
statement.setInt(1, 555);
statement.executeUpdate();
statement.close();
я получаю java.sql.SQLException: Не удается вставить значение 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 вы можете выбирать между столбцом идентификации и последовательностью. Я мог бы это сделать и для других rdbms '. – rudolfson
Спасибо за разъяснение. Однако это не считается для других rdbms. По крайней мере, не для Oracle. –