【问题标题】:How to create unique temporary tables in MySQL procedures?如何在 MySQL 过程中创建唯一的临时表?
【发布时间】:2010-01-11 19:38:55
【问题描述】:

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

然后我尝试创建一个随机名称以避免冲突,但我对如何执行 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 stored-procedures temp-tables


    【解决方案1】:
     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

    【讨论】:

      猜你喜欢
      • 2012-03-23
      • 2011-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 1970-01-01
      • 1970-01-01
      • 2017-05-17
      相关资源
      最近更新 更多