Java sqlite last_insert_rowid() return 0

Java sqlite last_insert_rowid() return 0

我对 last_insert_rowid() 有疑问。它总是 returns 0.

String query = "SELECT last_insert_rowid() AS LAST FROM UGYFEL";
PreparedStatement pst1 = connection.prepareStatement(query);
ResultSet  rs1 = pst1.executeQuery();
JOptionPane.showMessageDialog(null, rs1.getString("LAST"));
pst1.execute();

//JOptionPane.showMessageDialog(null, "Adat elmentve");

pst1.close();
rs1.close();

函数 last_insert_rowid() return 有效的行 ID(行 ID 大于 0)如果它是在您执行上次插入时所用的同一个打开的连接上调用的。您可以通过使用相同的连接来解决它,或者如果您只是想从 UGYFEL 获取 max id,您可以这样获取它

SELECT MAX(YOUR_ID_COL_NAME) AS LAST FROM UGYFEL

所以工作正常。正确吗?

                String query = "SELECT MAX(ID) AS LAST FROM UGYFEL";
                PreparedStatement pst1 = connection.prepareStatement(query);
                ResultSet  rs1 = pst1.executeQuery();
                String maxId=  rs1.getString("LAST");
                //Max Table Id Convert to Integer and +1
                int intMaxId =(Integer.parseInt(maxId))+1;
                //Convert to String
                String stringMaxId = Integer.toString(intMaxId);
                tUazon.setText(stringMaxId);
                pst1.execute();

                //JOptionPane.showMessageDialog(null, "Adat elmentve");

                pst1.close();
                rs1.close();