【问题标题】:Create a new table from a stored procedure in MySQL从 MySQL 中的存储过程创建一个新表
【发布时间】:2012-05-23 15:01:37
【问题描述】:

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

【问题讨论】:

  • 我试过变量@tbl_name; SET tbl_name = 'tbl_output_tbl'+id

标签: mysql database stored-procedures


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 2016-11-11
      • 2017-10-14
      • 2021-07-10
      • 2015-08-27
      • 1970-01-01
      相关资源
      最近更新 更多