今天写一个对数据库做快照的存储过程,用到了动态表名,突然发现MYSQL不支持直接使用变量做表名,GOOGLE了下,采用以下方法.

 

  1. DECLARE dbName VARCHAR(30); 
  2. SET dbName = 'aaa'
  3.  
  4. SET @STMT :=CONCAT("CREATE TABLE ",dbName," SELECT id from gamedb;"); 
  5.  
  6. PREPARE STMT FROM @STMT; 
  7. EXECUTE STMT; 
  8.  
  9. END