SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.08.2010 20:45:09

ad1r
Участник
Зарегистрирован: 28.07.2010
Сообщений: 7

Создание представления (view) на основании одной таблицы

Здравствуйте, мне нужно создать представление, которое содержало бы в себе записи с определенным неизменяемым идентификатором.

Таблица pages (page_id, name, date, category_id)

Представление должно содержать те же данные что и в таблице page, только записи должны в ней находиться у которых category_id = 20 (пример)

Код:

CREATE VIEW `pages_view` AS SELECT * FROM `pages` WHERE `pages`.`category_id`='20';

этот запрос проходит успешно, но создается совершенно пустое прдетавление, хотя в таблице pages имеются записи у которых category_id=20

скажите пожалуйста, в чем моя ошибка?

спасибо

Неактивен

 

#2 25.08.2010 22:14:18

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Создание представления (view) на основании одной таблицы

Хмм, т.е. Вы хотите сказать, что SELECT * FROM pages_view выдает ноль строк, а просто SELECT из правой части запроса создания - нет? Попробуйте выделить и скопировать запрос, может, опечатались где-то просто?

Неактивен

 

#3 26.08.2010 11:14:37

ad1r
Участник
Зарегистрирован: 28.07.2010
Сообщений: 7

Re: Создание представления (view) на основании одной таблицы

Код:

SELECT * FROM `pages` WHERE `category_id`='23'

запрос возвращает 10 записей - это именно те записи которые я хочу видеть в представлении

Код:

CREATE VIEW `pages_view` AS SELECT * FROM `pages` WHERE `category_id`='23'

создается представление и при входе в него возвращается 0 строк и выдёт следующую ошибку:
"#1356 - View 'aaaaa.pages_view' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

Отредактированно ad1r (26.08.2010 16:18:01)

Неактивен

 

#4 26.08.2010 12:43:52

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Создание представления (view) на основании одной таблицы

Команды

SELECT * FROM `pages` WHERE `page_category_id`='23';

и
SELECT * FROM pages_view;

вы выполняете одним и тем же пользователем?

Неактивен

 

#5 26.08.2010 14:13:37

ad1r
Участник
Зарегистрирован: 28.07.2010
Сообщений: 7

Re: Создание представления (view) на основании одной таблицы

Да один и тем же пользователем, через phpmyadmin

Неактивен

 

#6 26.08.2010 14:45:39

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Создание представления (view) на основании одной таблицы

Нее, Вы делаете разные вещи. Сравните правые части Ваших запросов:
WHERE `page_category_id`='23'
WHERE `pages`.`category_id`='23'

Найдите два отличия.

Неактивен

 

#7 26.08.2010 16:19:01

ad1r
Участник
Зарегистрирован: 28.07.2010
Сообщений: 7

Re: Создание представления (view) на основании одной таблицы

допустил ошибку при оформлении поста, исправил коды запросов, phpmyadmin выдает точно такую же ошибку.

ещё раз и по порядку

1 создаю представление:

Код:

CREATE VIEW pages_view
AS SELECT *
FROM pages
where `category_id`='23'

2 выбираю из представления:

Код:

SELECT * FROM pages_view

в результате запроса получаю 0 строк и что-то типа ошибки
#1356 - View 'asdad.pages_view' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

Отредактированно ad1r (26.08.2010 16:25:51)

Неактивен

 

#8 26.08.2010 19:02:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Создание представления (view) на основании одной таблицы

Ну, вообще говоря, так не бывает. Т.е. если Вы делаете всё действительно так,
как описываете, то это ошибка ПО. Я бы на Вашем месте для начала отказался
от phpMyAdmin в пользу стабильного клиента и попробовал бы в нем. Хорошими
клиентами являются стандартный консольный клиент и стандартный графический
клиент.

Если в них ошибка тоже воспроизводится, то попробуйте обновить MySQL до
последней стабильной версии и попробовать в ней.

Неактивен

 

#9 26.08.2010 23:00:54

ad1r
Участник
Зарегистрирован: 28.07.2010
Сообщений: 7

Re: Создание представления (view) на основании одной таблицы

Выполняю аналогичные запросы на домашнем сервере - все успешно отрабатывается и выводится.

Спасибо, буду разбираться

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson