Mysql: создать вид как выберите *

0

Когда вы создаете

CREATE VIEW view1 AS SELECT * FROM table1

mysql меняет это внутренне на

CREATE VIEW view1 AS SELECT f1, f2, f3 FROM table1

Если вы добавите новый столбец f4 в таблицу1, в представлении1 все еще будут только первые три столбца. Вы должны воссоздать свое мнение. Это раздражает, если у вас много просмотров.

Есть ли способ заставить mysql сохранять SELECT * в объявлении вида, поэтому он всегда выбирает все поля независимо от того, изменилась ли таблица?

Теги:

3 ответа

0

Короче говоря, нет. Это то, как MySQL обрабатывает представления внутренне.

Pro tip: не использовать представления. Это бедный человек, способный скрывать ненужную сложность за другой сложностью. Лучше просто сделать простой запрос, MySQL работает лучше.

  • 0
    Спасибо за всю информацию о взглядах. Даже я не согласен воздерживаться от использования представлений вообще. Упаковка логики представлений непосредственно в запросах может значительно усложнить их. И «сложный» в разработке приложений означает «подверженный ошибкам» и «сложный в обслуживании». В большинстве случаев производительность базы данных не является проблемой ...
0

MySql View не использует для возврата полное определение используемой базовой таблицы для возврата части таблиц с данными спецификации или marge.
V iews не будет иметь большого смысла без него. Принцип также применяется, если вы выберете из представления, которое выбирает из таблицы, если представление выбирает из таблицы в подзапросе, и представление оценивается с помощью алгоритма слияния. Обработка обработки не является оптимизировано. Вы можете видеть этот блог, чтобы узнать, что правильно с точки зрения MySql. Просмотр ограничений

0

MySql имеет правильное поведение.

Когда вы создаете представление как SELECT * FROM table1, MySql изменяет ваш код с полным списком полей.

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

Если существует такое автоматическое поведение, вы можете создать проблему производительности при использовании представления.

Предположим, вы добавили 50 полей, и вы используете свое представление в форме, вы можете изменить нагрузку данных от 3 до 53 полей. Не хорошо.

Так что это правильно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню