ホームページ >データベース >mysql チュートリアル >INSERT 後に OUTPUT 句を使用して ID 値を取得するにはどうすればよいですか?

INSERT 後に OUTPUT 句を使用して ID 値を取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-17 12:36:11575ブラウズ

How Can I Retrieve Identity Values After an INSERT Using the OUTPUT Clause?

OUTPUT 句を使用した新しく生成された ID 値へのアクセス

ID 列を含むテーブルにデータを挿入するには、多くの場合、新しく生成された ID を取得する必要があります。 OUTPUT 句は、これを実現する効率的な方法を提供し、追加のクエリの必要性を排除します。

アプローチ 1: テーブル変数への出力

このメソッドは、宣言されたテーブル変数に ID 値を送信します。

<code class="language-sql">DECLARE @OutputTbl TABLE (ID INT);

INSERT INTO MyTable (Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @OutputTbl (ID)
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

@OutputTbl 変数には、生成された ID が保持されます。

アプローチ 2: 非テーブル変数への出力

特定のデータベース システム (SQL Server など) は、非テーブル変数への直接出力をサポートしています。 これは広くサポートされているわけではないことに注意してください。 たとえば、PostgreSQL は代わりに RETURNING を使用します。

SQL サーバーの例:

<code class="language-sql">DECLARE @ID INT;

INSERT INTO MyTable (Name, Address, PhoneNo)
OUTPUT INSERTED.ID INTO @ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

IDは@IDに保存されます。

PostgreSQL の例:

<code class="language-sql">INSERT INTO MyTable (Name, Address, PhoneNo)
RETURNING Id INTO @ID
VALUES ('Yatrix', '1234 Address Stuff', '1112223333');</code>

ここで、@ID は返された ID を受け取ります。 RETURNING 句は、他のシステムの OUTPUT と同様に機能します。 特定のデータベース システムに基づいて適切な方法を選択してください。

以上がINSERT 後に OUTPUT 句を使用して ID 値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。