mysql - 如何在 MySQL 程序中创建唯一的临时表?

标签 mysql stored-procedures temp-tables

我在我的过程中创建了一个临时表,但我总是得到一个错误“表已经存在”。

然后我尝试创建一个随机名称以避免冲突,但我对如何执行 SQL 字符串了解不够

SET @tbName = CONCAT('temp', random_id);

PREPARE stmt1 FROM 'CREATE TEMPORARY TABLE ? (`FIELDNAME` float NOT NULL);';
EXECUTE stmt1 using @tbName;
DEALLOCATE PREPARE stmt1;

上面的代码不起作用。为什么?如何纠正?

最佳答案

 mysql> set @table_name := 'mytable';
 Query OK, 0 rows affected (0.02 sec)

 mysql> set @sql_text:=concat('create table ',@table_name,'(id int unsigned)');
 Query OK, 0 rows affected (0.00 sec)

来自 http://rpbouman.blogspot.com/2005/11/mysql-5-prepared-statement-syntax-and.html

关于mysql - 如何在 MySQL 程序中创建唯一的临时表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2044404/

相关文章:

mysql - 从两个具有不同列的表中进行选择,其中一个需要计数

postgresql - PostgreSQL 可以在过程中声明过程吗?

mysql - 为什么此过程会引发 'Unknown Column' 错误

sql-server - 访问在不同范围内创建的 SQL Server 临时表

php - 为什么 `mysqli_fetch_assoc` 会返回一个空对象?

Mysql 查询从另一个日期删除早于 30 天的日期

sql-server - 如何将 RESTORE FILELISTONLY/HEADERONLY/VERIFYONLY 给出的信息插入到临时表中

tsql - 如何访问通过调用 TSQL 中的存储过程生成的当前范围内的数据集?

php - 如何使用 php 从 SQL 表中获取信息

sql - 在 Oracle 中执行动态 SQL 查询