2012-12-28 42 views
0

我的SQL語句是這樣的:如何使用LAST_INSERT_ID()在MySQL

insert into foo (val1) values ('v1'); # ID in first table 
foo_id = select last_insert_id(); 

insert into bar (val2) values ('v2'); # ID in second table 
bar_id = select last_insert_id(); 

insert into foobar (foo_id, bar_id, val3) values (foo_id, bar_id,'text'); # third table 

以上不工作,它不承認foo_id =語句。

回答

4
insert into foo (val1) values ('v1'); -- ID in first table 
SET @foo_id = last_insert_id(); 

insert into bar (val2) values ('v2'); -- ID in second table 
SET @bar_id = last_insert_id(); 

insert into foobar (foo_id, bar_id, val3) values (@foo_id, @bar_id,'text'); -- third table 
+0

感謝您的答覆!我試過,但收到此錯誤:錯誤在第2行1193(HY000):未知的系統變量「foo_id」 – diya

+0

@diya需要聲明他們第一次的話,還是使用會話變量('@ foo_id'等)。 '聲明foo_id INT;' – scragar

+0

聲明之後,我得到了下面 - 在1號線ERROR 1064(42000):您有一個錯誤的SQL語法;檢查對應於你的MySQL服務器版本使用附近的1號線 – diya

相關問題