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.
Post die 'SHOW CREATE VIEW 'Ausgabe – Stephan
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
Wenn Sie die 'order by' entfernen, funktioniert es? oder wenn Sie es nach dem Spaltennamen nicht Alias bestellen? – Stephan