我有一个 Postgres 数据库,我正在编写一个 Java 程序来查询, 插入, 更新, 并从中删除数据。 我的一些表有代理键, DB 自动递增。
我使用 getGenerateKeys()
方法来接收最后插入的元组的 key 。
但我不明白为什么我需要这些 key 以及如何使用它们?
我可以在不接收这些 key 的情况下插入数据。
// Works as expected and gives me the last key.
PreparedStatement prepStmt = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
....
ResultSet rs = prepStmt.getGeneratedKeys();
if (rs.next()) {
this.lastID = rs.getInt(1);
}
这些生成的 key 的目的和/或值(value)是什么?
最佳答案
如果您插入到多个表,并且这些表具有指向另一个表的外键。
您将需要插入引用的键,然后也将其插入到第二个表的外键列中。
表A的id外键表B的id
插入表B并在插入表A时使用相同的Id
关于java - 为什么需要数据库代理键的 generatedKeys?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56837632/