2013-11-19 3 views
2

Когда я буду пытаться создать некоторые, но когда я называю это появляется ошибка 1356:Mysql Error 1356 - Просмотров

создания представления

CREATE VIEW monitoring_consult AS (
    SELECT 
     m.id, 
     account.valor AS 'phone_number', 
     IF((c.valor REGEXP '^[0-9]+$' OR c.valor IS NULL) AND cn.short_name IS NOT NULL, cn.short_name, c.valor) AS 'category', 
     IF(pn.id IS NOT NULL, pn.id, p.valor) AS 'provider', 
     n.valor AS 'nominal', 
     m.last_page, 
     pn.name AS 'provider_name', 
     IF(pay.valor is null, 'Uncompleted', pay.valor) AS 'payment', 
     timeEnd, 
     DATE_FORMAT(m.timeEnd, '%d/%m/%Y') as 'date' 
    FROM 
     monitoring AS m 
      LEFT JOIN feature AS account ON m.id = account.id AND account.valor IS NOT NULL AND (account.page = 'PV') AND account.type = 'send' 
      LEFT JOIN feature AS c ON m.id = c.id_monitoring AND c.valor IS NOT NULL AND (c.page = 'MA' OR c.page = 'IN') AND c.type = 'select' 
      LEFT JOIN feature AS p ON m.id = p.id_monitoring AND p.page = 'PO' AND p.valor IS NOT NULL AND p.type = 'select' 
      LEFT JOIN feature AS n ON m.id = n.id_monitoring AND n.valor IS NOT NULL AND n.page = 'OAP' AND n.type = 'select' 
      LEFT JOIN feature AS pay ON m.id = pay.id_monitoring AND m.last_page = 'OK' AND pay.type = 'userAction' AND pay.name = 'paymentStatus' AND pay.valor = 'Completed' 
      LEFT JOIN terminais AS term ON m.id_terminal = term.id 
      LEFT JOIN provider AS pn ON (p.valor = pn.id) OR (c.valor REGEXP '^[0-9]+$' AND c.valor = pn.id) 
      LEFT JOIN category AS cn ON pn.id_category = cn.id 
     group by m.id 
     having category is not null 
) 

Calling мнение:

select * from monitoring_consult 

Возврат:

Error Code: 1356. View 'qiwi.monitoring_consult' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them 

Mysql версия - 5.5.32-журнал

ли кто-нибудь знает, почему это произошло?

+1

Вы просто пытались «использовать qiwi»? Таким образом, представление знает, какую базу данных использовать. Я думаю, что это ваша проблема ... –

+0

Также вы используете больше просмотров в этом представлении? –

+0

Не этот мой взгляд. Я пытаюсь использовать qiwi, но он не работает. –

ответ

0

Это случаи

  1. MySQL loggined пользователь не привилегия просмотра представления monitoring_consult
  2. Любой из вашей присоединяемой таблицы не существует
  3. Любые из вашей области, что вы пытаетесь выборки не существует (Вы можете быть удалены)
+0

Тогда в случае frist, если у меня не было привилегии, правильная ведьма, когда я создам какое-то представление, появится у меня нет разрешения на ее создание. Второй, третий случай, который я проверил этот запрос без вида, и он работает. –

+0

@GuilhermeSoares Является ли это db, который вы экспортировали из любой другой БД? – Shafeeque

+0

Я не экспортирую из другой базы данных. –

3

прежде всего извините за мой английский, эта конкретная проблема возникает со мной каждый раз, когда я импортировал mysqldump expo rt, с автоматическим созданием представлений внутри него, такая проблема возникла из-за создания представления в mysqldump (когда вы снова воссоздаете), с «SQL Defence Defence», Я не знаю, является ли это ошибкой mysql , но для меня удаление и применение нового разрешения для представления не решает проблему, воссоздавая представление без «SQL SECURITY DEFINER», решая мою проблему, я надеюсь, что это ваше дело.

Ciao Massimiliano.

+0

Возможно, Definer потеряет привилегии ... Повторное создание с хорошим исправляет ошибку. –

0

При создании представления попробуйте указать Определитель так:

CREATE 
    ALGORITHM = UNDEFINED 
    DEFINER = `user`@`%` 
    SQL SECURITY DEFINER 
VIEW `monitoring_consult` AS ... 

где DEFINER user должны иметь соответствующие права на какую-либо таблицу, которая связана с видом

Смежные вопросы