0

我已经在我的数据库中创建了带有 IN 参数的过程(MySql-> 例程-> 创建过程)。我正在使用它来创建一个新数据库。当我调用过程并传递参数时,会创建新数据库,但新数据库的名称是我在过程中使用的变量的名称,而不是我作为参数传递的名称。

创建过程 dbCreate (IN dbName VARCHAR(255))

开始

    CREATE DATABASE IF NOT EXISTS dbName COLLATE utf8_bin;
    CREATE TABLE IF NOT EXISTS dbName.City(
    .
    .
    .
    );
    

当我调用程序 dbCreate 时,

使用旧数据库;

调用 old_database.dbCreate('FRANCE');

MySql 生成名为 dbName 的新数据库。

4

1 回答 1

0

构造你的语句,就好像它是一个字符串:

SET @s = CONCAT('USE old_database; CALL old_database.dbCreate(', dbName,');');
PREPARE stmt FROM @s;
EXECUTE stmt;
于 2012-10-23T17:45:10.933 回答