繁体   English   中英

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

[英]Inserting same auto_increment id into two different tables

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

如何为两个表使用相同的ID值。 现在,我使用java PreparedStatement单独发送查询以更新两个表(不带ID)。 喜欢,

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

我对两个表做了同样的事情,但是是否可以在两个表中使用相同的auto_id更新? 可以帮助实现Java。

db模式如下: 在此处输入图片说明

由于未提及表名,因此我正在考虑将该表名用作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,您可以在选择的任何表中进一步使用它!

希望这可以帮助!

尝试这个:

PreparedStatement preparedStatement = connection.prepareStatement("query");
preparedStatement.setString(i,"parameter");
preparedStatement.executeUpdate();
ResultSet generatedKeys = preparedStatement.getGeneratedKeys()
if (generatedKeys.next()) {
    user.setId(generatedKeys.getLong(1));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM