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

标签 mysql stored-procedures

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

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

最佳答案

您可以使用 CREATE TEMPORARY TABLE 创建所需的临时表这将在不求助于生成唯一标识符的情况下防止用户之间的名称冲突;

Temporary Tables

You can use the TEMPORARY keyword when creating a table. A TEMPORARY table is visible only to the current connection, and is dropped automatically when the connection is closed. This means that two different connections can use the same temporary table name without conflicting with each other or with an existing non-TEMPORARY table of the same name.

关于用于运行存储过程的 MySQL 唯一 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16145216/

相关文章:

postgresql - 函数体存放在系统目录的什么地方?

MySQL服务器存储过程语法错误

mysql - 从表 WHERE 中选择 x

mysql - 自动字段更新/计算字段

mysql - 如何查找 Rails 中每个单独记录的多列总和?

mysql - 如何安排在 12 :00PM - 12:00AM 之间每小时自动调用 MySQL 中的存储过程

mysql 存储过程正则表达式

php - 为什么mysql_fetch_array输出多个重复结果

php - 如何获取表中每条记录出现的数量

postgresql - 如何使函数在 postgreSQL 中使用 CASE 和 IFNULL?