从MySQL中的存储过程创建一个新表

时间:2012-05-23 15:01:38

标签: mysql database stored-procedures

我在mySQL中有一个带有参数的存储过程,如何在Stored过程中创建一个新表,将表名作为参数传递给存储过程。

2 个答案:

答案 0 :(得分:3)

可以从过程中创建表和其他一些对象 -

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

答案 1 :(得分:1)

使用这种方式动态创建表。

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+' )')

希望我的回答能帮到你。三江源