|
|
|
view insert в простую таблицу
|
|||
|---|---|---|---|
|
#18+
Дано таблица автор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', вставить автоматически, как это поправить насчет решение с созданием триггера знаю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2014, 18:00:32 |
|
||
|
view insert в простую таблицу
|
|||
|---|---|---|---|
|
#18+
mishanon, я чтото не понял, ты ожидал что на какой строчке (слове) твоего кода, тайтл станет автоматически 'USA'? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2014, 18:03:00 |
|
||
|
view insert в простую таблицу
|
|||
|---|---|---|---|
|
#18+
mishanon , DEFAULT ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2014, 20:00:16 |
|
||
|
view insert в простую таблицу
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2014, 20:24:30 |
|
||
|
view insert в простую таблицу
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2014, 01:13:16 |
|
||
|
view insert в простую таблицу
|
|||
|---|---|---|---|
|
#18+
а такой вариант не проходит? Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2014, 08:08:28 |
|
||
|
view insert в простую таблицу
|
|||
|---|---|---|---|
|
#18+
вадяа такой вариант не проходит? Код: sql 1. 2. 3. 4. 5. 6. 7. Нет, так как я хочу еще создать кучу view допустим news_world_russian и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2014, 09:29:48 |
|
||
|
view insert в простую таблицу
|
|||
|---|---|---|---|
|
#18+
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(), чтоб обновить и указать нужный тайтл. Теперь получает придется делать отдельный запрос, то есть еще большя потеря произвдительности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2014, 09:33:21 |
|
||
|
view insert в простую таблицу
|
|||
|---|---|---|---|
|
#18+
mishanon, сделайте процедуру добавления данных, которая будет подставлять недостающие поля на основе анализа значений параметров ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2014, 09:40:26 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38635999&tid=1834873]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
124ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 451ms |

| 0 / 0 |
