【发布时间】:2009-05-12 17:50:38
【问题描述】:
是否有一种通用的、跨 RDMS 的方式可以在 JDBC 插入时自动生成密钥?例如,如果我有一个包含主键、id 和 int 值的表:
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]
在桌子上没有运气。
【问题讨论】:
标签: java sql-server database jdbc rdbms