powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Триггкр обновления
4 сообщений из 4, страница 1 из 1
Триггкр обновления
    #38842499
Alexzandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Помогите пожалуйста с написанием тригера для изменения значения в таблице. Изменяемое значение должно быть меньше чем максимальное значение первичного ключа. Спасибо.
...
Рейтинг: 0 / 0
Триггкр обновления
    #38842613
Alexzandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE TABLE test
(
id integer NOT NULL
param integer
PRIMARY KEY(id)
)

INSERT INTO test (id, param) VALUE (1, 1)
INSERT INTO test (id, param) VALUE (2, 1)
INSERT INTO test (id, param) VALUE (3, 1)
INSERT INTO test (id, param) VALUE (4, 1)



Собственно, при изменении param, нужно проверить, что его новое значение не будет больше, чем максимальное значение id. Я так понимаю это должен делать триггер. Только пока не пойму, как это реализовать.
...
Рейтинг: 0 / 0
Триггкр обновления
    #38843152
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexzandr,

Примерно так моё видение, если решать задачу в лоб.
Код: sql
1.
2.
3.
4.
5.
6.
7.
create trigger upd_test before update on [test]
for each row
begin
     select case when new.param >= (select max(id) from test) then
                 raise(ABORT, 'Param field is wrong')            
            end;
end
...
Рейтинг: 0 / 0
Триггкр обновления
    #38843161
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так красивее и наверное получше
Код: sql
1.
2.
3.
4.
5.
create trigger upd_test before update on [test]
for each row when new.param >= (select max(id) from test)
begin
     select raise(ABORT, 'Param field is wrong');           
end
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Триггкр обновления
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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