0

新しい行を追加する必要がある 2 つのテーブルがあります。

table fish 
  fish_id
  name
  color

table tank
  tank_id
  fish_id

新しい魚を挿入して、新しく作成された fish_id を持つタンクに割り当てたいとします。1回のクエリでこれを行う方法はありますか? または、新しい魚を挿入し、ID を取得してから、別の挿入を行う必要がありますか?

4

2 に答える 2

3

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

于 2012-11-30T07:33:01.043 に答える
1

トリガーを使用してこれを達成できます

CREATE TRIGGER `after_insert_fish`  
    AFTER INSERT ON `fish` FOR EACH ROW  
    BEGIN  
        INSERT INTO tank (fish_id)  
        VALUES (NEW.fish_id);  
    END  
于 2012-11-30T07:31:18.953 に答える