我在mySQL中有一个带有参数的存储过程,如何在Stored过程中创建一个新表,将表名作为参数传递给存储过程。
答案 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+' )')
希望我的回答能帮到你。三江源