2012-03-10 37 views
5

2つのテーブルに同時に挿入することはできますか?私はテーブル(contactinformation)にいくつかのデータを挿入し、プライマリキーに基づいてuserstableに挿入し、プライマリキーをフィールド(外部キー)として設定する必要があります。これは可能ですか?2つのテーブルに挿入する

おかげ

+0

両方のテーブルに対して挿入操作を順番に実行する必要がある場合があります。 – Lion

答えて

2

この手順を書くことができます。

DELIMITER // 

CREATE PROCEDURE `proc1` (contactinformation colums... usertable columns...) 
BEGIN 
    INSERT INTO contactinformation values(contactinformation colums ...); 
    INSERT INTO usertable values(LAST_INSERT_ID(), contactinformation colums ...); 
END// 

DELIMITER ; 

contactinformation colums...は連絡先情報テーブルの列定義を意味する。
usertable columns...は、usertableテーブルの列定義を意味します。

連絡先情報テーブルに自動列がある場合は、最初の挿入後に挿入IDを取得できます。次に、2番目のinsert文でそのキーを使用します。

+0

これはストアドプロシージャかトリガーですか? – Biscuit128

+0

そのストアドプロシージャ。 'CREATE PROCEDURE'があります。 'usertable'と' contactinformation'のスキーマを教えてください。それから、私はよりよく理解し、それに応じて手続きを変更します –

0

あなたはtable2に同じ値を挿入するtable1にトリガを作成することができます。

2

JOINを使用して2つの異なるテーブルを参照できる更新可能または挿入可能なビューに挿入することができます。hereを参照してください。

関連する問題