我在数据库中使用两个表。第一个表是存储学生的个人详细信息,其中一列是auto_increment,名为Student_id。我有另一个用于存储主题详细信息的表,其中还包含与前面提到的列具有外键关系的Student_id。
如何为两个表使用相同的id值。现在我使用java PreparedStatement分别发送查询以更新两个表(没有id)。等,
PreparedStatement preparedStatement = connection.prepareStatement("query");
preparedStatement.setString(i,"parameter");
preparedStatement.executeUpdate();
我为两个表做了同样的事情,但是是否可以在两个表中使用相同的auto_id进行更新?有人可以帮助实现java。
答案 0 :(得分:1)
由于没有提到表名,我正在考虑将表名用作ParamsTable
,这是流程!
您执行了代码中提到的插入(在问题中发布)!
PreparedStatement preparedStatement = connection.prepareStatement("query");
preparedStatement.setString(i,"parameter");
preparedStatement.executeUpdate();
在此之后,您必须触发SELECT
查询以从ParamsTable
ResultSet resultSet = preparedStatement.executeQuery("SELECT last_insert_id() AS last_inserted_id");
String lastInsertedID = resultSet.getString("last_inserted_id");
您现在将持有auto_increment列的最后一个插入ID,您可以在您选择的任何表中进一步使用它!
希望这有帮助!
答案 1 :(得分:0)
试试这个:
PreparedStatement preparedStatement = connection.prepareStatement("query");
preparedStatement.setString(i,"parameter");
preparedStatement.executeUpdate();
ResultSet generatedKeys = preparedStatement.getGeneratedKeys()
if (generatedKeys.next()) {
user.setId(generatedKeys.getLong(1));
}