用于运行存储过程的MySQL唯一会话

时间:2013-04-22 10:47:23

标签: mysql stored-procedures

如果我有一个存储过程,每次运行时创建临时表X,是否有办法运行具有某种唯一会话ID的存储过程,以便当人员A运行存储过程时,它创建临时表表X,然后当人B运行相同的程序时,它也不会创建临时表X然后崩溃。

我基本上想要一个可以执行某些操作的过程,但是我希望muluple人能够同时运行相同的过程,而过程失败,因为已经创建了临时表。只是想知道我是否可以在MySQL中对会话变量做些什么,或者可能使用某人的连接信息来为每个运行该过程的人创建一个唯一的会话。也许每次都创建表X_session_ID。有没有办法在存储过程中生成唯一的ID?

1 个答案:

答案 0 :(得分:0)

您可以使用CREATE TEMPORARY TABLE创建所需的临时表,这样可以防止用户之间发生名称冲突而无需生成唯一标识符;

  

临时表

     

创建表时可以使用TEMPORARY关键字。 TEMPORARY表仅对当前连接可见,并在连接关闭时自动删除。这意味着两个不同的连接可以使用相同的临时表名,而不会相互冲突或与现有冲突相互冲突非同名的同名表。