0

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

4

2 回答 2

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 语法

于 2012-05-23T15:41:41.733 回答
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+' )')

希望我的回答对你有所帮助。谢谢你

于 2012-05-24T09:41:15.950 回答