簡體   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