2013-07-05 5 views
6

ich eine sehr einfache Frage habe, der gut arbeitet:Mysql 5.6.12 Fehler: Fehler 1356 bei der Verwendung, um von Alias ​​in einer View-Definition

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

von SELECT * ich doppelte Spaltennamen am Ende der Schaffung so bearbeitet I die Abfrage spezifischere und ignoriert die doppelten Spaltennamen zu sein, aber MySQL wirft einem # 1356 Fehler:

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

die v_image_stats Ansicht und die zugrunde liegenden Ansichten und ta Es hat die richtigen Privilegien, ich bin völlig verwirrt.

Ich verwende MySQL 5.6 und phpmyadmin, um die Ansichten zu erstellen und zu verwalten, ich greife auch über PHP PDO innerhalb des Phalcon-Frameworks auf die Datenbank zu, aber ich bin ziemlich sicher, dass dies ein MySQL-Problem ist.

Jede Hilfe dankbar erhalten.

ich ursprünglich die volle Ausgabe von SHOW CREATE VIEW gebucht, aber es war zu ausführlich, hier ist das einfachste Beispiel habe ich das Problem neu erstellen erstellen:

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) 
) 

Es schlägt fehl, auch wenn ich eine Tabelle verwenden Sie stattdessen von eine Sicht in der FROM-Klausel.

+2

Post die 'SHOW CREATE VIEW 'Ausgabe – Stephan

+0

Das Problem scheint durch die Bestellung einer Ansicht von einem Spaltenalias verursacht werden. Ich kann keinen MySQL-Bug oder eine bekannte Einschränkung finden, die damit verbunden ist. Kann jemand das neu erstellen? – davec

+1

Wenn Sie die 'order by' entfernen, funktioniert es? oder wenn Sie es nach dem Spaltennamen nicht Alias ​​bestellen? – Stephan

Antwort

3

Dies scheint ein Fehler zu sein, der MySQL 5.6.10 und höher betrifft (ich habe nicht gegen MySQL 5.7 getestet). Ich habe einen Fehler mit MySQL ausgelöst, so kann dies verfolgt und hoffentlich behoben werden: http://bugs.mysql.com/bug.php?id=69678

Siehe die Kommentare für eine effektive Problemumgehung.

+0

Update: Bug wurde verifiziert und akzeptiert. – davec

Verwandte Themen