2013-01-15 47 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()返回会话完成最近一次插入过程中的一个自动增量列指派的第一个值,不管还有什么可能已插入到其他会话表随后,所以并发不是问题。我说:“第一个值分配”,因为如果你在一个单独的语句插入多行,第一个值,你回来这个功能之一。 –

相关问题