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 Syntax for Prepared Statements を参照してください。

于 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 に答える