ホームページ >データベース >mysql チュートリアル >INSERT 後に OUTPUT 句を使用して ID 値を取得するにはどうすればよいですか?
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 サイトの他の関連記事を参照してください。