代码之家  ›  专栏  ›  技术社区  ›  sixtyfootersdude

使用select命令创建新表

  •  1
  • sixtyfootersdude  · 技术社区  · 14 年前

    假设我有这样的命令:

    select name, age, haircolor from people where shoesize > 10;
    

    有没有方法可以根据该命令返回的内容创建新表?我想将该命令的输出导入一个新表。

    含义:

    mysql> show tables; 
    +-----------------+
    | Tables_in_db1   |
    +-----------------+
    | people          |
    +-----------------+
    1 rows in set (0.00 sec)
    
    mysql> CREATE TABLE FROM "select name, age, haircolor from people where shoesize > 10;";
    ..?
    
    mysql> show tables; 
    +-----------------+
    | Tables_in_db1   |
    +-----------------+
    | people          |
    | NEW TABLE       |
    +-----------------+
    1 rows in set (0.00 sec)
    
    4 回复  |  直到 14 年前
        1
  •  3
  •   Paul Dixon    14 年前

    是的,那个 CREATE TABLE 语法在末尾支持option SELECT语句,它可以简单如下:

     CREATE TABLE foo
     SELECT bar FROM xyz;
    
        2
  •  2
  •   codaddict    14 年前

    你可以用 MySQL's create table...select syntax :

    您可以从另一个表创建一个表 通过在 CREATE TABLE语句的结尾:

    CREATE TABLE new_tbl SELECT * FROM orig_tbl;
    
        3
  •  1
  •   Vincent Savard Midhun    14 年前

    当然可以,例如:

    CREATE TABLE your_table AS SELECT name, age -- ...
    

    您可以看到更多关于语法的信息 here .

        4
  •  0
  •   The Surrican    14 年前

    你也可以 create a table from that select statement

    但数据会被复制

    如果希望数据相同,并且新表与源更新,反之亦然,则可以 create a view