我正在使用executeUpdate(query)将一行插入到Firebird数据库表中,虽然这样可以告诉我它是否有效。
我需要知道的是插入了什么行,即插入记录时唯一的主键,我需要知道这个ID,以便在以后的语句中引用它。
这可能吗?如果可以,怎么做?
由于
尼尔
答案 0 :(得分:3)
您可以使用Firebird 2.0中引入的INSERT STATEMENT
的RETURNING
子句:
INSERT INTO ... RETURNING PKFieldName
答案 1 :(得分:2)
我刚刚邮寄了这封邮件,以回复您发送到Firebird-Java邮件列表的邮件:
Jaybird 2.2将添加对使用getGeneratedKeys()检索生成的密钥的支持(结合JDBC中定义的特定执行方法来支持此功能)。
然而,在Jaybird 2.1.6 IIRC中无法使用该功能,但是 - 使用Firebird 2.0或更高版本 - 您可以使用INSERT ... RETURNING <your-primary-key-field>
并将其作为查询(例如executeQuery)而不是更新来执行。返回的结果集将包含生成的主键(这与Jaybird 2.2将为getGeneratedKeys()功能执行的操作几乎完全相同)。