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

将视图从生产副本复制到数据仓库

  •  0
  • special0ne  · 技术社区  · 7 年前

    我的生产副本中有一个视图(它是一个只读数据库),我需要将其中一个视图复制到我的数据仓库中。

    • 我无法从副本上的视图创建表。意思是我做不到 CREATE TABLE Table_From_View AS SELECT * FROM My_View;

    我肯定我错过了一些基本的东西。。。

    思想?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Bill Karwin    7 年前

    在MySQL中,视图不存储任何内容。它更像是别名或宏。它只是将查询逻辑传递给底层的基表。

    您需要底层的基表存在于创建视图的同一个MySQL实例上,并且在查询视图时,基表必须保持在同一个MySQL实例上。

    mysql> CREATE TABLE myview_base AS SELECT * FROM myview;
    

    然后可以对该复制表执行逻辑转储:

    shell > mysqldump --single-transaction mydatabase myview_base > myview_base.sql
    


    SELECT * FROM myview INTO OUTFILE 'filename.csv';
    

    这会将SQL查询的结果转储到文件中。看到了吗 https://dev.mysql.com/doc/refman/8.0/en/select-into.html