powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / view insert в простую таблицу
10 сообщений из 10, страница 1 из 1
view insert в простую таблицу
    #38635912
mishanon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дано таблица
авторCREATE TABLE IF NOT EXISTS `news_world` (
`id` int(11) NOT NULL,
`title` char(255) NOT NULL,
`body` text NOT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Данные
авторINSERT INTO `news_world` (`id`, `title`, `body`, `created`) VALUES
(1, 'Iran', 'breaking news about', '2014-01-23 09:40:52'),
(2, 'USA', 'check check', '2014-01-23 09:45:46');

Создаю вьюху


авторCREATE VIEW news_world_usa AS SELECT id, body, created FROM news_world WHERE title = 'USA';

Пытаюсь вставить новость

авторINSERT INTO `news_world_usa` (id, body) VALUES (3, 'check usa');

в итоге это новость не попадает в view news_world_usa, так как не заполнено поле title.
автор(3, '', 'check usa', '2014-05-07 17:27:31');

Я ожидал что title = 'USA', вставить автоматически, как это поправить
насчет решение с созданием триггера знаю!
...
Рейтинг: 0 / 0
view insert в простую таблицу
    #38635918
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mishanon,

я чтото не понял, ты ожидал что на какой строчке (слове) твоего кода, тайтл станет автоматически 'USA'?
...
Рейтинг: 0 / 0
view insert в простую таблицу
    #38635986
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mishanon , DEFAULT ?
...
Рейтинг: 0 / 0
view insert в простую таблицу
    #38635999
mishanon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex564657498765453mishanon,

я чтото не понял, ты ожидал что на какой строчке (слове) твоего кода, тайтл станет автоматически 'USA'?

Да ожидал. Иначе получается что я вставлю строку в news_world_usa. и она не окажется в таблице news_world_usa, разве не глупость?

Cygapb-007 mishanon , DEFAULT ?

Какие образом я могу указать дефолтное значение при создании VIEW? офицальная документации вообще такой фичи не описывает http://dev.mysql.com/doc/refman/5.0/en/create-view.html
...
Рейтинг: 0 / 0
view insert в простую таблицу
    #38636111
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mishanon,

Насколько я понял из доки, можно только включить проверку на соответствие условию в WHERE.
http://dev.mysql.com/doc/refman/5.0/en/view-updatability.html The WITH CHECK OPTION clause can be given for an updatable view to prevent inserts or updates to rows except those for which the WHERE clause in the select_statement is true.

Попутно, хоть и оффтоп, нашел любопытный момент:
http://dev.mysql.com/doc/refman/5.0/en/view-updatability.html If a table contains an AUTO_INCREMENT column, inserting into an insertable view on the table that does not include the AUTO_INCREMENT column does not change the value of LAST_INSERT_ID(), because the side effects of inserting default values into columns not part of the view should not be visible. В который раз убеждаюсь, что ну его лесом пользоваться VIEW в MySQL.
...
Рейтинг: 0 / 0
view insert в простую таблицу
    #38636169
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а такой вариант не проходит?

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE IF NOT EXISTS `news_world` (
`id` int(11) NOT NULL,
`title` char(255) DEFAULT 'USA'
`body` text NOT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
...
Рейтинг: 0 / 0
view insert в простую таблицу
    #38636231
mishanon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяа такой вариант не проходит?

Код: sql
1.
2.
3.
4.
5.
6.
7.
CREATE TABLE IF NOT EXISTS `news_world` (
`id` int(11) NOT NULL,
`title` char(255) DEFAULT 'USA'
`body` text NOT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;



Нет, так как я хочу еще создать кучу view допустим news_world_russian и т.д.
...
Рейтинг: 0 / 0
view insert в простую таблицу
    #38636233
mishanon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftmishanon,

Насколько я понял из доки, можно только включить проверку на соответствие условию в WHERE.
http://dev.mysql.com/doc/refman/5.0/en/view-updatability.html The WITH CHECK OPTION clause can be given for an updatable view to prevent inserts or updates to rows except those for which the WHERE clause in the select_statement is true.

Попутно, хоть и оффтоп, нашел любопытный момент:
http://dev.mysql.com/doc/refman/5.0/en/view-updatability.html If a table contains an AUTO_INCREMENT column, inserting into an insertable view on the table that does not include the AUTO_INCREMENT column does not change the value of LAST_INSERT_ID(), because the side effects of inserting default values into columns not part of the view should not be visible. В который раз убеждаюсь, что ну его лесом пользоваться VIEW в MySQL.

Да я смотрел и делал так. Да говорит, что ошибка. но как это мне поможет

Это не оффтоп. я как раз хотел создать триггер, и искать id вставленной записи через LAST_INSERT_ID(), чтоб обновить и указать нужный тайтл. Теперь получает придется делать отдельный запрос, то есть еще большя потеря произвдительности
...
Рейтинг: 0 / 0
view insert в простую таблицу
    #38636238
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mishanon,

сделайте процедуру добавления данных, которая будет подставлять недостающие поля на основе анализа значений параметров
...
Рейтинг: 0 / 0
view insert в простую таблицу
    #38636239
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, или триггер before insert
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / view insert в простую таблицу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]