Я хочу создать таблицу, представляющую собой кеш результатов из представления. Есть ли простой способ автоматически определить таблицу из определения представления, или мне придется сгладить ее вместе с show create table view
?
Легкий синтаксис "create table from view" в mysql?
Ответ 1
Вы можете сделать CREATE TABLE SELECT
из представления, чтобы его создать. Это должно дублировать структуру представления как новую таблицу, содержащую все строки представления. Здесь ссылка на синтаксис MySQL для этого утверждения.
CREATE TABLE tbl_from_view AS
SELECT
col1,
col2,
col3,
col4,
col5
FROM your_view;
Обратите внимание, что вы захотите быть очень явным в выборе столбцов. Не рекомендуется делать SELECT *
из исходного представления. Убедитесь также, что у вас есть псевдонимы для любых вычисленных или совокупных столбцов, таких как COUNT(*), MAX(*), (col1 + col2)
и т.д.
Ответ 2
Я также обнаружил, что в выводе mysqldump есть инструкции, которые создают представление как таблицу, перед тем, как он определяет представление. Я могу разобрать их и запустить их в качестве запросов.