【发布时间】:2012-05-23 15:01:37
【问题描述】:
我在 mySQL 中有一个带参数的存储过程,如何在存储过程中创建一个新表,将表名作为参数传递给存储过程。
【问题讨论】:
-
我试过变量@tbl_name; SET tbl_name = 'tbl_output_tbl'+id
标签: mysql database stored-procedures
我在 mySQL 中有一个带参数的存储过程,如何在存储过程中创建一个新表,将表名作为参数传递给存储过程。
【问题讨论】:
标签: mysql database stored-procedures
可以从过程中创建表和其他一些对象-
CREATE PROCEDURE procedure1(IN tableName VARCHAR(255))
BEGIN
SET @sql = CONCAT('CREATE TABLE ', tableName, '(column1 INT(11))');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
有关支持的 DML 语句的更多信息,请点击此处 - SQL Syntax for Prepared Statements。
【讨论】:
使用这种方式动态创建表。
DECLARE @tableName VARCHAR(50)
DECLARE @fieldType VARCHAR(50)
DECLARE @fieldName VARCHAR(50)
SET @tableName='abc'
SET @fieldType ='int'
SET @fieldName='id'
EXEC('CREATE TABLE '+@tableName+'( '+@fieldName+' '+@fieldType+' )')
希望我的回答对你有所帮助。谢谢你
【讨论】: