MySQL从字符串创建表名

时间:2016-06-17 04:12:33

标签: mysql string stored-procedures create-table

我想在MySQL中创建一个表名,但是使用我声明的字符串值。这可能吗?我在考虑这样的事情:

DECLARE new_table_name VARCHAR(255);
SET new_table_name = CONCAT("foo",123);
CREATE TABLE new_table_name (
    ...etc...
)

到目前为止,我无法弄清楚如何做到这一点。顺便说一句,我在存储过程中得到了这个。

1 个答案:

答案 0 :(得分:3)

在存储过程中使用以下代码:

BEGIN

DECLARE new_table_name VARCHAR(255);
SET new_table_name = CONCAT("foo",123);

SET @createTable = CONCAT("CREATE TABLE ", new_table_name, "(id int, some_col varchar(55))");

PREPARE createStmt FROM @createTable;
EXECUTE createStmt;
DEALLOCATE PREPARE createStmt;

END$$