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

时间:2013-10-30 15:28:46

标签: mysql stored-procedures random temp-tables

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

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

我想知道这是否会产生完全无碰撞的字符串?

1 个答案:

答案 0 :(得分:5)

您可以使用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)