Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 Значения по умолчанияю без редактирования / 6 сообщений из 6, страница 1 из 1
04.03.2009, 09:39
    #35849931
olzhas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 Значения по умолчанияю без редактирования
У меня вообщем такая задачка.
Есть таблица, в ней хочу добавить одно поле которое отвечало бы за дату изменения\добавления записи.

Код: plaintext
1.
2.
3.
4.
5.
CREATE TABLE TEST
 (ID         INTEGER  NOT NULL,
  ...
  DATEMODIF  DATE     NOT NULL  DEFAULT CURRENT DATE
 )

Сделал вот так, однако меня смущает тот факт что дата генерируется только по умолчанию.

Для integer полей можно задать констркуцию generate always, можно ли такое задать и для даты?
...
Рейтинг: 0 / 0
04.03.2009, 10:02
    #35849973
Vladimir Kiselev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 Значения по умолчанияю без редактирования
olzhas,

Сделайте два триггера, например, которые будут устанавливать эту дату в нужное значение.
...
Рейтинг: 0 / 0
04.03.2009, 10:34
    #35850071
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 Значения по умолчанияю без редактирования
olzhasУ меня вообщем такая задачка.
Есть таблица, в ней хочу добавить одно поле которое отвечало бы за дату изменения\добавления записи.

Код: plaintext
1.
2.
3.
4.
5.
CREATE TABLE TEST
 (ID         INTEGER  NOT NULL,
  ...
  DATEMODIF  DATE     NOT NULL  DEFAULT CURRENT DATE
 )

Сделал вот так, однако меня смущает тот факт что дата генерируется только по умолчанию.

Для integer полей можно задать констркуцию generate always, можно ли такое задать и для даты?Можно для любого типа, для которого определено равенство.
Т.е. нельзя только для lob, xml, структурных типов.
...
Рейтинг: 0 / 0
04.03.2009, 10:55
    #35850162
olzhas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 Значения по умолчанияю без редактирования
А не подскажите синтаксис описания
а то вот так не получается

Код: plaintext
DATEMODIF  DATE     NOT NULL GENERATED ALWAYS AS CURRENT DATE
...
Рейтинг: 0 / 0
04.03.2009, 11:57
    #35850356
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 Значения по умолчанияю без редактирования
olzhasА не подскажите синтаксис описания
а то вот так не получается

Код: plaintext
DATEMODIF  DATE     NOT NULL GENERATED ALWAYS AS CURRENT DATE
Так не получится, т.к. спец. регистры нельзя использовать в выражении для generated always.
Можно написать простую ф-цию на c или java, которая будет брать дату из системы, типа:
--- get_date.c ---
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
#include <string.h> 
#include <stdlib.h> 
#include <time.h> 
#include <sqludf.h> 
 
#ifdef __cplusplus
extern "C"
#endif
void SQL_API_FN get_date( 
        SQLUDF_DATE *result,      /* output */ 
        /* null indicators */ 
        SQLUDF_NULLIND *result_ind, 
        SQLUDF_TRAIL_ARGS) 
{ 
  struct tm *lt;
  time_t t;

  time(&t);
  lt = localtime(&t);
  sprintf(result, "%.4d-%.2d-%.2d\n", lt->tm_year+ 1900 , lt->tm_mon, lt->tm_mday);
  *result_ind =  0 ; 
}
--- get_date.sql ---
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE FUNCTION get_date()
RETURNS DATE
EXTERNAL NAME 'get_date!get_date'
LANGUAGE C 
PARAMETER STYLE SQL
DETERMINISTIC
FENCED
NO SQL
NO EXTERNAL ACTION;
---
библиотеку get_date поместить в sqllib\function и:
Код: plaintext
DATEMODIF  DATE     NOT NULL GENERATED ALWAYS AS (get_date())
...
Рейтинг: 0 / 0
04.03.2009, 13:23
    #35850684
olzhas
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2 Значения по умолчанияю без редактирования
Mark Barinstein,

Для меня это пока сложновато. Мне проще триггер написать. Но все равно спасибо. Как нибудь на досуге попробую реализовать вашу версию.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 Значения по умолчанияю без редактирования / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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