将相同的auto_increment id插入两个不同的表中

时间:2018-05-01 07:49:45

标签: java mysql sql auto-increment

我在数据库中使用两个表。第一个表是存储学生的个人详细信息,其中一列是auto_increment,名为Student_id。我有另一个用于存储主题详细信息的表,其中还包含与前面提到的列具有外键关系的Student_id。

如何为两个表使用相同的id值。现在我使用java PreparedStatement分别发送查询以更新两个表(没有id)。等,

PreparedStatement preparedStatement = connection.prepareStatement("query");
preparedStatement.setString(i,"parameter");
preparedStatement.executeUpdate();

我为两个表做了同样的事情,但是是否可以在两个表中使用相同的auto_id进行更新?有人可以帮助实现java。

Db架构如下: enter image description here

2 个答案:

答案 0 :(得分:1)

由于没有提到表名,我正在考虑将表名用作ParamsTable,这是流程!

您执行了代码中提到的插入(在问题中发布)!

PreparedStatement preparedStatement = connection.prepareStatement("query");
preparedStatement.setString(i,"parameter");
preparedStatement.executeUpdate();

在此之后,您必须触发SELECT查询以从ParamsTable

获取最后插入的ID(自动增加的ID)
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));
}