新しい行を追加する必要がある 2 つのテーブルがあります。
table fish
fish_id
name
color
table tank
tank_id
fish_id
新しい魚を挿入して、新しく作成された fish_id を持つタンクに割り当てたいとします。1回のクエリでこれを行う方法はありますか? または、新しい魚を挿入し、ID を取得してから、別の挿入を行う必要がありますか?
新しい行を追加する必要がある 2 つのテーブルがあります。
table fish
fish_id
name
color
table tank
tank_id
fish_id
新しい魚を挿入して、新しく作成された fish_id を持つタンクに割り当てたいとします。1回のクエリでこれを行う方法はありますか? または、新しい魚を挿入し、ID を取得してから、別の挿入を行う必要がありますか?
LAST_INSERT_ID 関数を使用して、2 つの連続したクエリでこれを行うことができます。
INSERT INTO fish (fish_id,name,color)
VALUES(NULL,'fish','red');
INSERT INTO tank (tank_id, fish_id)
VALUES(100, LAST_INSERT_ID());
http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id
トリガーを使用してこれを達成できます
CREATE TRIGGER `after_insert_fish`
AFTER INSERT ON `fish` FOR EACH ROW
BEGIN
INSERT INTO tank (fish_id)
VALUES (NEW.fish_id);
END