MYSQL从以前的Insert插入ID

时间:2012-11-30 07:26:06

标签: mysql

有两个表需要添加新行。

table fish 
  fish_id
  name
  color

table tank
  tank_id
  fish_id

假设我要插入一条新鱼,然后将它分配给一个带有新创建的fish_id的坦克。有没有办法在一个查询中执行此操作?或者您是否必须插入新鱼,获取ID,然后再插入一次?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您可以使用触发器实现此目的

CREATE TRIGGER `after_insert_fish`  
    AFTER INSERT ON `fish` FOR EACH ROW  
    BEGIN  
        INSERT INTO tank (fish_id)  
        VALUES (NEW.fish_id);  
    END