nas*_*ash 5 java database sql-server jdbc rdms
是否有一般的交叉RDMS,我可以在JDBC插入上自动生成密钥?例如,如果我有一个包含主键,id和int值的表:
create table test (
id int not null,
myNum int null
)
Run Code Online (Sandbox Code Playgroud)
并插入
PreparedStatement statement = connection.prepareStatement("insert into test(myNum) values(?)", Statement.RETURN_GENERATED_KEYS);
statement.setInt(1, 555);
statement.executeUpdate();
statement.close();
Run Code Online (Sandbox Code Playgroud)
我得到一个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]
Run Code Online (Sandbox Code Playgroud)
在桌子上没有运气.
这完全取决于数据库.有两个主要选项:1 - 允许主键定义旁边的自动增量关键字的DBMS和2 - 提供序列生成器的DBMS(然后可以使用它来生成PK的新值,例如通过编写"插入前"触发器,在完成插入之前自动在列中插入新值.
我所知道的: