为了使一个字符串代表一个表(或数据库)名称,您将需要用变量连接查询字符串,并在存储过程中准备/执行一条语句。这是一个基本示例。
-- DROp PROCEDURE IF EXISTS createLogTable;DELIMITER //CREATE PROCEDURE createLogTable(tblName VARCHAr(255))BEGIN SET @tableName = tblName; SET @q = CONCAt(' CREATE TABLE IF NOT EXISTS `' , @tableName, '` ( `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `something` VARCHAr(10) NOT NULL, `somedate` DATETIME NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 '); PREPARE stmt FROM @q; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- and you're done. Table is created. -- process it here if you like (INSERT etc)END //然后…
CALL createLogTable('exampleTable');所以基本思想是
- 根据需要将过程参数与查询联系起来
- 从此查询字符串准备/执行语句



