Я сломал мой запрос Mysql View. Как мне это исправить? - PullRequest
2 голосов
/ 22 марта 2010

Несколько месяцев назад я создал VIEW, который дает мне транзакции за прошлый месяц. Я использую это представление в других запросах. Проблема в том, что я изменил некоторые имена таблиц таблиц, на которые есть ссылки внутри VIEW и которые в процессе сломали запрос VIEW. Теперь другие мои запросы больше не выполняются.

Есть ли способ увидеть, что такое оператор VIEW, и отредактировать его, чтобы отразить новые имена таблиц? Я использую phpmyadmin, но каждый раз, когда я пытаюсь перейти к таблице представлений, она выдает ошибку, говоря, что она недействительна, но не показывает, что это такое ...

1 Ответ

7 голосов
/ 22 марта 2010

Если вы знаете имя представления, вы можете запустить его, и он покажет вам запрос, который создает представление.Если phpMyAdmin не позволяет вам запустить его, то вам, вероятно, придется сделать это в командной строке.

SHOW CREATE VIEW view_name

Также следует указать, что он говорит что-то вроде:

SQL SECURITY DEFINER VIEW `myViewName` AS

Сразу после этого вы найдете запрос, который создает это представление.Скопируйте и вставьте его в текстовый редактор, и вы сможете изменить его, чтобы он работал с вашими новыми именами таблиц.

Запустите его как обычный запрос, чтобы убедиться, что он работает, затем, когда вы будете готовы заменить его насломанный оригинал, вы можете выполнить этот запрос (будьте осторожны, это приведет к удалению исходного представления!):

DROP VIEW IF EXISTS myViewName;

CREATE VIEW myViewName AS ...(your new query here)...

Надеюсь, что поможет!

Ссылки:

  1. http://dev.mysql.com/doc/refman/5.1/en/show-create-view.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...