powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 - триггер на вставку, почему не создается?
10 сообщений из 10, страница 1 из 1
DB2 - триггер на вставку, почему не создается?
    #34144915
Nafigator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE TRIGGER USERS_UID NO CASCADE BEFORE INSERT ON USERS REFERENCING NEW AS NEW_USER FOR EACH ROW NEW_USER.USER_ID = GENERATE_UNIQUE()

Ругается на '=' и говорит, что там должен быть <space> (???)

Пример взят из документации, кстати!
...
Рейтинг: 0 / 0
DB2 - триггер на вставку, почему не создается?
    #34145603
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE TRIGGER USERS_UID
NO CASCADE BEFORE INSERT ON USERS
REFERENCING NEW AS NEW_USER
FOR EACH ROW
SET NEW_USER.USER_ID = GENERATE_UNIQUE()
...
Рейтинг: 0 / 0
DB2 - триггер на вставку, почему не создается?
    #34145860
Nafigator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо!
...
Рейтинг: 0 / 0
DB2 - триггер на вставку, почему не создается?
    #34145949
Nafigator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но возник следующий вопрос.
Каков смысл schema в данном случае? Правильно ли я понял, что если в качестве schema используется юзер, работающий с сервером, то триггер будет выполняться для таблицы с именем USERS, обнаруженной в ЛЮБОЙ базе данных, присутствующей на данном сервере?
...
Рейтинг: 0 / 0
DB2 - триггер на вставку, почему не создается?
    #34146704
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какая у вас версия базы?
...
Рейтинг: 0 / 0
DB2 - триггер на вставку, почему не создается?
    #34147008
Nafigator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
9.1.0.356
...
Рейтинг: 0 / 0
DB2 - триггер на вставку, почему не создается?
    #34147434
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NafigatorНо возник следующий вопрос.
Каков смысл schema в данном случае? Правильно ли я понял, что если в качестве schema используется юзер, работающий с сервером, то триггер будет выполняться для таблицы с именем USERS, обнаруженной в ЛЮБОЙ базе данных, присутствующей на данном сервере?Нет, не правильно.
Даже не знаю с чего начать...
Видимо, в вашем понимании "база данных" и "сервер" - это "схема" и "база данных" в понятиях DB2 соответственно.
В момент создания триггера, если не указывать его схему и имя схемы таблицы, на которую он повешен, то в качестве имени схемы для триггера и таблицы будет использовано значение регистровой переменной current schema (ее значение можно получить запросом values current schema).
По умолчанию ее значение равно вашему authorization id (имени пользователя, которым вы соединились с базой).
...
Рейтинг: 0 / 0
DB2 - триггер на вставку, почему не создается?
    #34147793
Nafigator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, тогда другой вопрос. Придется ли мне для каждой таблицы, где используется id-поле, которое я хочу "автогенерить" через generate_unique() писать отдельный триггер или я могу использовать единый триггер?
...
Рейтинг: 0 / 0
DB2 - триггер на вставку, почему не создается?
    #34147980
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо писать отдельный.
А что, это требования системы использовать обязательно generate_unique() в качестве генератора ключа?
Нельзя завести для этого generated always as identity поле?
...
Рейтинг: 0 / 0
DB2 - триггер на вставку, почему не создается?
    #34149083
Nafigator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Переносится база из MS SQL, где поля - uniqueidentifier. Клиент хочет перенести базу, а в дальнейшем использовать такую же структуру ключей, какая была в MS SQL. Я знаю, что generate_unique работает с 13-разрядным полем в db2, но я пока просто тестирую работу. В дальнейшем же, возможно, придется использовать UDF (кстати, интересно, генерирует ли виндовая CoCreateGUID() UID по тому же алгоритму, что newid() в MS SQL...)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2 - триггер на вставку, почему не создается?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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