我在 mySQL 中有一个带有参数的存储过程,我如何在存储过程中创建一个新表,将表名作为参数传递给存储过程。
问问题
4685 次
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 回答