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();
我对 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();