CREATE VIEW

wbrframe

Новичок
CREATE VIEW

Локально: MySQL API Client 5.0.51a
На сервере: MySQL API Client 5.0.51a

Запрос CREATE VIEW ....выполняется успешно.

При обновлении данных в БД, представление автоматически обновляет набор данных, но только в локальной версии сайта. На сервере, по неведомым мне причинам, не хочет этого делать.

В поисках решение было предпринято несколько попыток решить проблему:
Вначале серверный API был версии 5.0.32 обновился до 5.0.51a, не помогло.
Обратил внимание на запрос CREATE VIEW ...(конструктор SQL Manager for MySQL) он создавал представление для конкретного юзера root@localhost. Убрал, не помогло.

Возможно у кого-нибудь есть идеи по этому поводу?
 

ys

отодвинутый новичок
Какой еще API?
Версия mysql сервера какая? где выхлоп ошибок?
 

wbrframe

Новичок
Я почему написал API. В phpmyadmin написано:

Версия сервера (локально): 5.1.28-rc-community-log
Версия MySQL-клиента (локально): 5.0.51a

запутался..
=================================
Ошибок нет, представление успешно создается и на сервере, но в результирующем наборе совершенно нет данных. Можно было грешить на сам запрос. Но локальная версия сайта работает отлично.
=================================
текущая версия удаленного сервера: 5.0.51a-24

Нужно попробовать обновится до 5.1.28...хотя смысла в этом не вжу, представления поддерживаются в mysql с версии 5.0.1
 

findnext

Новичок
ёкалы бабай, информации 0

в чём проблема то?

"При обновлении данных в БД, представление автоматически обновляет набор данных" и как это понимать?....

-~{}~ 26.03.09 01:22:

как оно обновляет? тригером или ещё что то и т.д
 

wbrframe

Новичок
я совсем недавно познакомился с представлениями, скорее всего я неправильно понимаю их принцип работы.

Чтобы было понятней о каких обновлениях я говорил, вот пример:

есть таблица:

CREATE TABLE `user` (
`id` int(20) unsigned NOT NULL AUTO_INCREMENT,
`login` varchar(25) NOT NULL
PRIMARY KEY (`id`)
)

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

CREATE VIEW test_view AS
SELECT * FROM `user

если я выполняю запрос вставки:
INSERT INTO `user`.....

то таблица test_view обновляется автоматически.
======================================
Локально это обновление происходит, а на хостинге нет.

Я бы дал больше информации, но не знаю что еще могу сказать.
 

findnext

Новичок
покажи SHOW CREATE TABLE и SHOW CREATE VIEW

-~{}~ 26.03.09 11:24:

вообщем сделай там где работает, и на сервере где не работает и покажи

-~{}~ 26.03.09 11:31:

а вообще вот ещё и ссылка, тут всё написано
http://dev.mysql.com/doc/refman/5.0/en/view-updatability.html
 

wbrframe

Новичок
findnext, спасибо за помощь.

Запросы большие и они полностью идентичны. Думаю не стоит бросать вам этот хлам, так как суть не в этом. Сам запрос опишу ниже. Вот вспомогательная информации при создании view, возможно будет интересна:

PHP:
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW.....select и т.д.
==================================
По поводу ограничений самих представлений...у меня есть книга Пола Уилтона, я как раз через неё и познакомился с представелниями в поисках решения задачи. Там были описаны все ограничения по созданию запросов для view.

Да, в самом запросе используется HAVING, а также подзапросы в самом выражении HAVING. Но есть 2 факта, которые впринципе весомые, чтобы откинуть вариант некорректности запроса:

1. локальная версия запроса выполняется успешно
2. я вот недавно, тоже просил совет по не сложной задачи с использованием представлений.
Тема не большая на sql.ru

запрос к view с использованием
PHP:
HAVING && GROUP
выполнялся успешно. Меня это удивило конечно, но я уже не стал вдаваться в подробности.

Скорее всего проблемы в настройке mysql сейчас копаю в этом направлении.
 

findnext

Новичок
DEFINER VIEW.....select и т.д.
ну то что тут не помешало бы тоже увидеть

-~{}~ 26.03.09 12:41:

DROP VIEW IF EXISTS должно стоять перед CREATE ALGORITHM
есть такое?

-~{}~ 26.03.09 12:44:

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

-~{}~ 26.03.09 12:46:

по этой ссылке http://dev.mysql.com/doc/refman/5.0/en/view-updatability.html перечислены все допустимые возможности изза которых твой view не обновляется. Нужно строго читать мануал и делать в соответствии с мануалом а не гадать на кофейной гуще
 

Potaevsky

Новичок
Советую поставить нормальную прогу для работы с базой, а не phpMyAdmin - например тот же EMS SQL Manager for MySQL - ибо фиг его знает что браузер да и сам скрипт может закешировать.

-~{}~ 27.03.09 15:36:

например, тому же ие вообще пофигу на хедеры с ноукешем - так что то что у тебя происходит вполне может оказаться именно из-за этого.
 

wbrframe

Новичок
Автор оригинала: Potaevsky
Советую поставить нормальную прогу для работы с базой, а не phpMyAdmin - например тот же EMS SQL Manager for MySQL - ибо фиг его знает что браузер да и сам скрипт может закешировать.

-~{}~ 27.03.09 15:36:

например, тому же ие вообще пофигу на хедеры с ноукешем - так что то что у тебя происходит вполне может оказаться именно из-за этого.
Проблема так и не решилась. Из-за нехватки времени пришлось всё таки писать 5-ти этажные запросы.

Спасибо за рекомендации. EMS SQL Manager - программа отличная, как раз недавно начал с ней знакомится.
 
Сверху