0

有两个表需要添加新行。

table fish 
  fish_id
  name
  color

table tank
  tank_id
  fish_id

假设我想插入一条新鱼,然后将其分配给具有新创建的 fish_id 的鱼缸。有没有办法在一个查询中做到这一点?或者您是否必须插入新鱼,获取 id,然后再插入?

4

2 回答 2

3

您可以使用 LAST_INSERT_ID 函数在两个连续查询中执行此操作。

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 回答