Легко синтаксис «создать таблицу из представления» в MySQL? - PullRequest
35 голосов
/ 11 февраля 2012

Я хочу создать таблицу, которая является кешем результатов из представления.Есть ли простой способ автоматически определить таблицу из определения представления, или мне придется объединить ее из show create table view?

Ответы [ 2 ]

51 голосов
/ 11 февраля 2012

Вы можете сделать CREATE TABLE SELECT из представления, чтобы построить его. Это должно дублировать структуру представления как новую таблицу, содержащую все строки представления. Вот справочник синтаксиса MySQL для этого оператора.

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

Обратите внимание, что вы хотите быть очень явным в выборе столбцов. Не рекомендуется делать SELECT * из представления источника. Также убедитесь, что у вас есть псевдонимы для любых вычисляемых или агрегированных столбцов, например COUNT(*), MAX(*), (col1 + col2) и т. Д.

1 голос
/ 20 февраля 2012

Я также обнаружил, что в выводе mysqldump есть операторы, которые создают представление в виде таблицы, непосредственно перед тем, как оно определяет представление.Я могу разобрать их и запустить как запросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...