在mysql中轻松'从视图创建表'语法?

时间:2012-02-11 16:39:32

标签: mysql syntax

我想创建一个表,它是视图结果的缓存。有没有一种简单的方法可以从视图的定义中自动定义表格,还是我必须从show create table view汇总它?

2 个答案:

答案 0 :(得分:49)

您可以从视图中执行CREATE TABLE SELECT来构建它。这应该将视图的结构复制为包含所有视图行的新表。这是此声明的MySQL syntax reference

CREATE TABLE tbl_from_view AS    
  SELECT
    col1,
    col2,
    col3,
    col4,
    col5
  FROM your_view;

请注意,您希望在列选择中非常明确。不建议从源视图中执行SELECT *。同时确保您拥有任何计算或汇总列的别名,例如COUNT(*), MAX(*), (col1 + col2)等。

答案 1 :(得分:1)

我还发现在mysqldump输出中,有一些语句在视图定义之前将视图创建为表。我可以解析那些并将它们作为查询运行。