Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Ноясните пожалуйсто нубу! / 5 сообщений из 5, страница 1 из 1
04.09.2013, 16:34
    #38386945
Amiri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ноясните пожалуйсто нубу!
subj по поводу time-based update detection
или где почитать желательно на русском.

и в чем разница между спецификацией зет/не-зет

Спасибо.
...
Рейтинг: 0 / 0
04.09.2013, 18:47
    #38387133
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ноясните пожалуйсто нубу!
Amiri,

По-русски :)
Вот вы решили сделать себе optimistic locking.

Код: 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.
25.
26.
-- создали таблицу
create table test_time (
  i int
, rs timestamp not null generated always FOR EACH ROW ON UPDATE AS ROW CHANGE TIMESTAMP IMPLICITLY HIDDEN
) in userspace1;

-- вставили записи
insert into test_time values 1, 2, 3;

-- посмотрели, что получилось
select rid_bit(t) rid, ROW CHANGE TOKEN FOR t as tok, i from test_time t;

RID                                 TOK                  I          
----------------------------------- -------------------- -----------
x'0400000000000000000064C364200100'   141692493709407928           1
x'0500000000000000000064C364200100'   141692493709407929           2
x'0600000000000000000064C364200100'   141692493709443928           3

-- В своем приложении выбрали и запомнили RID и TOK для записи с i=1
-- Закрыли трнзакцию, сам statement, может быть даже соединение разорвали.
-- И ушли пить чай с намерением вернуться и изменить запись.
-- Пришли и выполнили:
update test_time t set i=0
where rid_bit(t)=x'0400000000000000000064C364200100'
and ROW CHANGE TOKEN FOR t = 141692493709407928;

Если за время вашего чаепития кто-то изменил вашу запись, то DB2 изменит ROW CHANGE TOKEN у этой записи, и ваш запрос вернёт предупреждение:
Код: plaintext
1.
2.
SQL0100W  No row was found for FETCH, UPDATE or DELETE; or the result of a 
query is an empty table.  SQLSTATE=02000
Получив это предупреждение, вы понимаете, что запись кто-то обновил, и надо получить обновленную запись, если её по-прежнему надо обновлять.
...
Рейтинг: 0 / 0
04.09.2013, 20:55
    #38387220
Amiri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ноясните пожалуйсто нубу!
Mark Barinstein,

спасибо. а по поводу z или не z?(
...
Рейтинг: 0 / 0
05.09.2013, 07:27
    #38387365
Amiri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ноясните пожалуйсто нубу!
Но вопросы ещё есть
1. Что делать с существующей базой с существующими таблицами
2. На зетке вроде эти доп столбцы есть бесплатно
...
Рейтинг: 0 / 0
09.09.2013, 17:10
    #38391301
Amiri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ноясните пожалуйсто нубу!
а как это дело задействовать.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Ноясните пожалуйсто нубу! / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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