powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / таблицы в DB2
10 сообщений из 10, страница 1 из 1
таблицы в DB2
    #35662421
Frail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Пожалуйста, помогите, такой вопрос:
как задать формулу (синтаксис) для генерации значений при создании таблицы в DB2?

Заранее огромное спасибо.
...
Рейтинг: 0 / 0
таблицы в DB2
    #35662578
Фотография I_love_MSDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE "yourschema"."yourcolumn" (
  "ABC"	INTEGER	NOT NULL	GENERATED BY DEFAULT
    AS IDENTITY (START WITH  1 , INCREMENT BY  1 , NO CACHE,
       NO MINVALUE, NO MAXVALUE, NO CYCLE, NO ORDER),
  "SECOND"	CHARACTER( 1 ) FOR SBCS DATA	WITH DEFAULT NULL
  
)
  IN DATABASE "yourdatabase"
  AUDIT NONE
  DATA CAPTURE NONE
  NOT VOLATILE
  CCSID EBCDIC;

-Абсолют-
...
Рейтинг: 0 / 0
таблицы в DB2
    #35664730
Frail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это все понятно, но мне нужно немножко другая информация.

Есть два поля дата и порядковый номер записи текущего дня, которая с изменением даты (новый день) сбрасывается на 1. Как это реализовать с помощью настроек DB2? Может есть какие то команды?
...
Рейтинг: 0 / 0
таблицы в DB2
    #35664817
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте триггер insert before
...
Рейтинг: 0 / 0
таблицы в DB2
    #35665064
Frail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
golsaИспользуйте триггер insert before

А как его использовать?
Напишите пжлста пример
...
Рейтинг: 0 / 0
таблицы в DB2
    #35665981
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TRIGGER <имя тригера> 
NO CASCADE BEFORE INSERT ON <имя таблицы>
REFERENCING NEW AS NEW_ROW 
FOR EACH ROW 
BEGIN ATOMIC
  SET NEW_ROW.<имя поля c датой> = <дата>
  SET NEW_ROW.<имя поля c числом дней> = <число дней с начала года>
END
...
Рейтинг: 0 / 0
таблицы в DB2
    #35668131
Dune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
golsa
Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE TRIGGER <имя тригера> 
NO CASCADE AFTER INSERT ON <имя таблицы>
REFERENCING NEW AS NEW_ROW 
FOR EACH ROW MODE DB2SQL
  SET (NEW_ROW.<имя поля c датой>, NEW_ROW.<имя поля c числом дней>)  = 
        (<дата>, <число дней с начала года>);
...
Рейтинг: 0 / 0
таблицы в DB2
    #35671692
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
FrailЭто все понятно, но мне нужно немножко другая информация.

Есть два поля дата и порядковый номер записи текущего дня, которая с изменением даты (новый день) сбрасывается на 1. Как это реализовать с помощью настроек DB2? Может есть какие то команды?После того, как дата изменилась, есть вероятность, что записи будут добавляться в этот день другим числом?
...
Рейтинг: 0 / 0
таблицы в DB2
    #35675282
Frail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВСЕМ ОГРОМНОЕ СПСБ !!!!!
ЕСТЬ ПРОБЛЕМА С КОНСТРУКЦИЕЙ < IF ... THEN >
ПИШЕМ ТАК :

CREATE TRIGGER TRG_UPD
BEFORE UPDATE ON OLD_KODE
REFERENCING NEW AS NEW_ROW
FOR EACH ROW
WHEN
(
(NEW_ROW.ID_NUM+1>999) AND
(NEW_ROW.ID_KOD+1<=NEW_ROW.ID_KODK)
)
BEGIN ATOMIC
SET NEW_ROW.ID_NUM=1;
SET NEW_ROW.ID_KOD=NEW_ROW.ID_KOD+1;
END

ВСЕ НОРМАЛЕК .. КАТИТ

А КАК ЭТО НАПИСАТЬ ИСПОЛЬЗУЯ КОНСТРУКЦИЮ < IF ... THEN > НЕ ИСПОЛЬЗУЯ < WHEN > ???

ЕСЛИ ПИСАТЬ ТАК

CREATE TRIGGER TRG_UPD
BEFORE UPDATE ON OLD_KODE
REFERENCING NEW AS NEW_ROW
FOR EACH ROW

BEGIN ATOMIC
IF (NEW_ROW.ID_NUM+1>999) AND
(NEW_ROW.ID_KOD+1<=NEW_ROW.ID_KODK)
THEN
BEGIN
SET NEW_ROW.ID_NUM=1;
SET NEW_ROW.ID_KOD=NEW_ROW.ID_KOD+1;
END
ELSE BEGIN
......
.......
END
END

ДАЕТ ОШИБКУ ТИПА ПОСЛЕ <THEN> ОЖИДАЛСЯ ......
ВАРИАНТЫ < BEGIN ... END> И Т.П. ВСЕ ПЕРЕБРАЛА
ВСЕ ТА ЖЕ ОШИБКА....
ЧТО ЗНАЧИТ ТАКАЯ КОНСТРУКЦИЯ НЕ КАТИТ ?????

Я ПИШУ НА DB2 EXPRESS-C

МОЖЕТ КТО ПОДСКАЖЕТ КАК ПИСАТЬ КОНСТРУКЦИЮ <IF ... THEN >
...
Рейтинг: 0 / 0
таблицы в DB2
    #35675729
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FrailCREATE TRIGGER TRG_UPD
BEFORE UPDATE ON OLD_KODE
REFERENCING NEW AS NEW_ROW
FOR EACH ROW

BEGIN ATOMIC
IF (NEW_ROW.ID_NUM+1>999) AND
(NEW_ROW.ID_KOD+1<=NEW_ROW.ID_KODK)
THEN
BEGIN
SET NEW_ROW.ID_NUM=1;
SET NEW_ROW.ID_KOD=NEW_ROW.ID_KOD+1;
END
ELSE BEGIN
......
.......
END
END IF;
ENDСм. также IF statement .
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / таблицы в DB2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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