2013-01-15 77 views
1

例如,我有一個users表,waitingUsers表: 他們的工作是這樣的:如何在MySQL的PROCEDURE中使用新插入記錄的ID?

`Users`: 
id 
name 

`WaitingUsers`: 
id 
user_id 

兩個UsersWaitingUsers的ID是自動遞增。 我想有一個PROCEDURE創建用戶,並創建用戶後的新id生成,並用它插入到waitingUsers。我該怎麼做?謝謝。

回答

3

試試這個,

DELIMITER $$ 
CREATE PROCEDURE InsertRecord(IN _name VARCHAR(30)) 
BEGIN 
    INSERT INTO Users VALUES (_name); 
    INSERT INTO WaitingUsers VALUES (LAST_INSERT_ID()); 
END $$ 
DELIMITER ; 

DELIMITER $$ 
CREATE PROCEDURE InsertRecord(IN _name VARCHAR(30)) 
BEGIN 
    INSERT INTO Users (id, Name) VALUES (NULL, _name); 
    INSERT INTO WaitingUsers (id, user_id) VALUES (NULL, LAST_INSERT_ID()); 
END $$ 
DELIMITER ; 
+0

如果併發什麼是問題? – fancyPants

+0

LAST_INSERT_ID()返回會話完成最近一次插入過程中的一個自動增量列指派的第一個值,不管還有什麼可能已插入到其他會話表隨後,所以併發不是問題。我說:「第一個值分配」,因爲如果你在一個單獨的語句插入多行,第一個值,你回來這個功能之一。 –

相關問題