1

如果我有一个每次运行时都会创建临时表 X 的存储过程,有没有办法运行具有某种唯一会话 ID 的存储过程,这样当人 A 运行存储过程并创建临时表 X 时,那么当人 B 运行相同的过程时,它也不会创建临时表 X 然后崩溃。

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

4

1 回答 1

1

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

临时表

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

于 2013-04-22T10:51:33.970 回答