有两个表需要添加新行。
table fish
fish_id
name
color
table tank
tank_id
fish_id
假设我要插入一条新鱼,然后将它分配给一个带有新创建的fish_id的坦克。有没有办法在一个查询中执行此操作?或者您是否必须插入新鱼,获取ID,然后再插入一次?
答案 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