powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / union all view
11 сообщений из 11, страница 1 из 1
union all view
    #34704256
value
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.

Вот такая возникла проблема: судя по Updatable UNION ALL Views in DB2 Universal Database Version 8 , можно сделать секционированное представление следующим образом

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TABLE Q1(product_no INT, sales INT, date DATE);
CREATE TABLE Q2 LIKE Q1; 
CREATE TABLE Q3 LIKE Q1; 
CREATE TABLE Q4 LIKE Q1;
CREATE VIEW FY AS 
  SELECT product_no, sales, date FROM Q1 
    WHERE month(date) IN ( 1 ,  2 ,  3 ) 
UNION ALL 
  SELECT product_no, sales, date FROM Q2  
    WHERE month(date) IN ( 4 ,  5 ,  6 ) 
UNION ALL 
  SELECT product_no, sales, date FROM Q3 
    WHERE month(date) IN ( 7 ,  8 ,  9 ) 
UNION ALL 
  SELECT product_no, sales, date FROM Q4  
    WHERE month(date) IN ( 10 ,  11 ,  12 ) 
WITH CASCADED CHECK OPTION;


НО!
В результате выполнения INSERT INTO FY VALUES (3, 10, '2001-07-11') получаю: Требуемая операция вставки или изменения для производной таблицы "FY" таблицы не разрешена, поскольку никакая таблица назначения не может быть определена для строки.
Использую Express-C 9 fx2, может ли подобная проблема возникнуть из-за версии?
Заранее спасибо.
...
Рейтинг: 0 / 0
union all view
    #34704288
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 9-ке есть нормальное секционирование таблиц.
...
Рейтинг: 0 / 0
union all view
    #34704302
value
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nikolay KulikovВ 9-ке есть нормальное секционирование таблиц.
В Express-C вроде как недоступно... Поэтому проблема остается.
...
Рейтинг: 0 / 0
union all view
    #34704304
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.

Надо так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
CREATE TABLE Q1(product_no INT, sales INT, date DATE);
CREATE TABLE Q2 LIKE Q1; 
CREATE TABLE Q3 LIKE Q1; 
CREATE TABLE Q4 LIKE Q1;
CREATE VIEW FY AS 
  SELECT product_no, sales, date FROM Q1 
UNION ALL 
  SELECT product_no, sales, date FROM Q2  
UNION ALL 
  SELECT product_no, sales, date FROM Q3 
UNION ALL 
  SELECT product_no, sales, date FROM Q4  
WITH CASCADED CHECK OPTION;

ALTER TABLE Q1 ADD CONSTRAINT Q1_CHK_DATE 
   		CHECK (MONTH(date) IN ( 1 ,  2 ,  3 )); 
	ALTER TABLE Q2 ADD CONSTRAINT Q2_CHK_DATE 
   		CHECK (MONTH(date) IN ( 4 ,  5 ,  6 )); 
	ALTER TABLE Q3 ADD CONSTRAINT Q3_CHK_DATE 
   		CHECK (MONTH(date) IN ( 7 ,  8 ,  9 )); 
	ALTER TABLE Q4 ADD CONSTRAINT Q4_CHK_DATE 
   		CHECK (MONTH(date) IN ( 10 ,  11 ,  12 ));

insert into fy (product_no, sales, date) VALUES ( 3 ,  10 , '2001-07-11');
...
Рейтинг: 0 / 0
union all view
    #34704449
value
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, но не хотелось бы править через динамику представление или констрайнт на таблице при добавлении или удалении секций. Поэтому и хотелось использовать условие WHERE, которое, как написано в документации, аналогично констрайнту. Хотя вот на практике выясняется обратное...
...
Рейтинг: 0 / 0
union all view
    #34704526
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
valueПоэтому и хотелось использовать условие WHERE, которое, как написано в документации, аналогично констрайнту.Ссылку можете привести на документацию?
Почитайте здесь , раздел "insertable views".
...
Рейтинг: 0 / 0
union all view
    #34704560
value
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein valueПоэтому и хотелось использовать условие WHERE, которое, как написано в документации, аналогично констрайнту.Ссылку можете привести на документацию?
Почитайте здесь , раздел "insertable views".

статья от некоего Serge Rielau

и еще одна статья от группы товарищей
...
Рейтинг: 0 / 0
union all view
    #34704671
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
value статья от некоего Serge Rielau
и еще одна статья от группы товарищей В конце статьи некоего Serge Rielau говорится:
---
It seems that although DB2 Version 8 has taken a big step forward with updatability of UNION ALL views, we can envision further improvements :
* Just as DB2 introduced updates to the partitioning key for tables in a multiple database partition group in DB2 Version 7, it may be expected that someday UNION ALL views will support updates that cause rows to migrate from one base table to another.
* Furthermore, it would be desirable to generalize insert through UNION ALL to exploit predicates in the view's body to dispatch the rows in addition or instead of check constraints. The view above would then look like this:
---
1-ое с тех пор они сделали (опция WITH ROW MOVEMENT команды CREATE VIEW).
2-ое - нет, как видно из документации.

А группа товарищей писала о v7, в которой вставка в UNION ALL view была вообще невозможна.
...
Рейтинг: 0 / 0
union all view
    #34704711
value
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да надо бы повнимательней читать статьи... Mark - большое спасибо. И все же, можно ли каким-нибудь орбазом, без DDL реализовать добавление/удаление секции в секционированом представлении?
...
Рейтинг: 0 / 0
union all view
    #34704890
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
valueможно ли каким-нибудь орбазом, без DDL реализовать добавление/удаление секции в секционированом представлении?Если кол-во секций меняется, то нет.
Иначе (реализуя roll in / roll out) вы можете обойтись:
--
alter table tab_with_oldest_section drop constraint old_check_constraint
delete from tab_with_oldest_section
alter table tab_with_oldest_section add constraint old_check_constraint check ( new_rows_come_on_here )
---
...
Рейтинг: 0 / 0
union all view
    #34704947
value
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо еще раз! Попробую сделать.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / union all view
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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