根据查询信息模式的结果在mydatabase中创建表

时间:2015-08-09 16:11:09

标签: mysql

让我澄清一下,我是mysql的新手。我正在尝试做以下事情:

CREATE TABLE my_table as (SELECT * FROM
    INFORMATION_SCHEMA.TABLES
WHERE
    TABLE_SCHEMA = 'mydatabase'
        AND table_type = 'base table');

然后当我检查mydatabase时,my_table不存在。我错过了什么?

1 个答案:

答案 0 :(得分:0)

给定一个名为table1的表,其中包含两个字段:

  • id
  • querytoexecute

您可以使用SQL请求填充querytoexecute。 请参阅下面的示例,其中包含两个创建两个表my_table1my_table2的记录。

 ___________________________________________________
|ID  |  querytoexecute                              |
|1   |  CREATE TABLE my_table1 (ID int, Name TEXT); |
|2   |  CREATE TABLE my_table2 (ID int, Name TEXT); |
 ___________________________________________________|

然后使用以下查询选择要执行的记录:

set @queryfromtable:= (select querytoexecute from table1 where id = 1);
PREPARE stmt FROM @queryfromtable;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;