ホームページ > バックエンド開発 > PHPチュートリアル > MySQL で外部キー関係に最後に挿入された ID を取得するにはどうすればよいですか?

MySQL で外部キー関係に最後に挿入された ID を取得するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-07 06:40:12
オリジナル
913 人が閲覧しました

How Do I Retrieve the Last Inserted ID for Foreign Key Relationships in MySQL?

外部キー関係の最後の挿入 ID の取得

リレーショナル データベースでは、テーブル間に外部キー関係を確立するのが一般的です。子テーブルに新しい行を挿入する場合、その行を親テーブルの行に関連付ける必要がある場合があります。これを実現するには、通常、最後に挿入された ID を親テーブルから取得し、それを子テーブルの外部キーとして使用する必要があります。

チャレンジ:

姓、名、およびユーザー名を使用して、画像 (テーブル 2 の) をユーザー (テーブル 1 の) に関連付けたいと考えています。ただし、最後に挿入された ID を table2 から取得し、それを table1 の外部キーとしてバインドしようとすると、機能しません。

解決策:

最後に挿入された ID を正常に取得し、それを使用して外部キーを設定するには、次の手順に従う必要があります:

  1. ID がtable2 のフィールドは自動インクリメント フィールドです。これにより、挿入された行ごとに一意の ID が自動的に生成されます。
  2. table2 に新しい行を挿入した後、mysqli_insert_id() 関数を使用します。この関数は、データベースによって生成された最後の自動インクリメント ID を返します。

mysqli_insert_id() 関数を組み込んだコードの更新バージョンは次のとおりです。

$image = mysqli_insert_id($mysqli); // Retrieve the last inserted ID from table2
$stmt = $mysqli->prepare("
  insert into table1 (username, firstname, lastname, image) 
  select ?,?,?,image from table2 t2 where username = ? and  t2.id = ? 
   ");
$stmt->bind_param('sssss', $username, $fname, $lname, $username, $image);
$stmt->execute();
ログイン後にコピー

これらを作成することで、変更により、最後に挿入された ID を table2 から取得し、それを外部キーとして使用して table1 の新しい行をリンクできるようになりました。

以上がMySQL で外部キー関係に最後に挿入された ID を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート