mysql - 在 MySQL 中创建具有随机名称的临时表

标签 mysql stored-procedures random temp-tables

我想在 MySQL 存储过程中创建具有随机名称的临时表。我还需要存储名称以便从另一个存储过程访问该表。我在考虑使用 MD5 哈希:

SELECT md5(RAND()+CURRENT_TIMESTAMP());

我想知道这是否会生成完全无冲突的字符串?

最佳答案

你可以使用 uuid()并从结果中删除破折号......这是我能想到的最接近的东西,它会给你任何可靠的独特之处。

select concat("table_prefix_", replace(uuid(), '-', '')) as unique_name; 

最终会变成这样:

mysql> select concat("table_prefix_",replace(uuid(), '-', '')) as unique_name;
+-----------------------------------------------+
| unique_name                                   |
+-----------------------------------------------+
| table_prefix_39f14dd9418011e3bd86c0cb38cd4f18 |
+-----------------------------------------------+
1 row in set (0.00 sec)

关于mysql - 在 MySQL 中创建具有随机名称的临时表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19687035/

相关文章:

mysql - 根据分组依据查询最后 N 行

php - 从 MySQL 中获取随机行并用 PHP 显示它

sql-server - 如何列出两个日期之间的所有日期

python - 检查上一个循环中是否存在随机值

java - 如何在 Java 中生成随机字符串

我可以从函数返回不同的序列吗?

php - 需要以最少的数据库查询提供类别/搜索结果过滤的建议

mysql - 使用 WHERE 和 BETWEEN 对两列进行排序

sql - SP 需要 15 分钟,但执行相同的查询会在 1-2 分钟内返回结果

MySQL,创建一个简单的函数