2013-07-05 5 views
6

Mam bardzo prostą kwerendę, która działa prawidłowo:MySQL 6.5.12 błąd: Błąd 1356 podczas korzystania zamówienie aliasu w definicji widoku

SELECT * 
FROM images i 
INNER JOIN v_images_stats s 
ON i.id = s.id 

Przez SELECT * skończę tworzenia zduplikowanych nazw kolumn więc edytowany zapytanie być bardziej szczegółowe i ignorować zduplikowane nazwy kolumn, ale MySQL generuje błąd: # 1356

SELECT i.is as id, s.id as imageid 
FROM images i 
INNER JOIN v_images_stats s 
ON i.id = s.id 

#1356 - View 'events.v_image_stats' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

widok v_image_stats i widoki bazowe i TA Opiera się na nich ma odpowiednie uprawnienia, jestem kompletnie oszołomiony.

Używam MySQL 5.6 i phpmyadmin do tworzenia widoków i zarządzania nimi, ja również uzyskuję dostęp do bazy danych poprzez PHP PDO w ramach Phalcon, ale jestem raczej pewien, że to problem MySQL, a nie cokolwiek innego.

Każda pomoc otrzymana z wdzięcznością.

początkowo pisał pełne wyjście SHOW CREATE VIEW, ale to było zbyt rozwlekły, oto najprostszy przykład można utworzyć, aby odtworzyć problem:

CREATE ALGORITHM=UNDEFINED DEFINER=`events`@`localhost` SQL SECURITY DEFINER VIEW `v_image_stats` AS 
(
    select it.*, 1 AS `my_alias` 
    from `v_image_totals` `it` 
    order by `my_alias` asc) 
) 

zawiedzie także w przypadku korzystania z tabeli zamiast widok w klauzuli FROM.

+2

Wyślij komunikat "POKAŻ WKRÓTCE WIDZENIE" – Stephan

+0

Problem wydaje się być spowodowany zamawianiem widoku przez alias kolumny. Nie mogę znaleźć błędu MySQL lub znanego ograniczenia związanego z tym, czy ktoś może to odtworzyć? – davec

+1

jeśli usuniesz 'order by' działa? lub jeśli złożysz zamówienie według nazwy kolumny, a nie aliasu? – Stephan

Odpowiedz

3

Wygląda na to, że błąd dotyczy MySQL w wersji 5.6.10 i nowszych (nie testowałem na MySQL 5.7). I podniosły błąd z MySQL, więc to może być śledzone i mam nadzieję, że naprawiono: http://bugs.mysql.com/bug.php?id=69678

Zobacz komentarze do skutecznego obejścia.

+0

Aktualizacja: błąd został zweryfikowany i zaakceptowany. – davec

Powiązane problemy