powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Триггер + SELECT.
9 сообщений из 9, страница 1 из 1
Триггер + SELECT.
    #36275143
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если я правильно понял - хранимых процедур в SQlite нет. В документации по триггреам сказано что они работают с вставкой, обновлением и удалением. Скажите а просто с выборкой (select) можно триггер подружить?
...
Рейтинг: 0 / 0
Триггер + SELECT.
    #36275150
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrbrooksСкажите а просто с выборкой (select) можно триггер подружить?
Да. Но что конкретно имелось в виду ?
...
Рейтинг: 0 / 0
Триггер + SELECT.
    #36275317
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry ArefievПросто подменить, для примера, это...
Т.е. триггер на SELECT - нет такого. Может VIEW подойдет ?
...
Рейтинг: 0 / 0
Триггер + SELECT.
    #36275422
MBG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MBG
Гость
Вопрос не совсем корректен. Но ответ положительный :-) Как пример:

Код: 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.
27.
28.
sqlite> .schema view_user_service
CREATE VIEW view_user_service as
  select us.rowid as rowid, us.*,
  (select value from plan_attribute where plan_id=p.id and arg='cost' and delete_date IS NULL) as cost,
  s.hw_type,s.hw_name,uc.number as contract,uc.id as contract_id,s.plan_id,p.provider_id,uc.user_id,s.name
  from user_service as us, service as s,user_contract as uc,plan as p
  where us.user_contract_id=uc.id and us.service_id=s.id and s.plan_id=p.id;
CREATE TRIGGER view_user_service_delete instead of delete on view_user_service
begin
  update user_service set delete_date=julianday('now') where id=OLD.id and delete_date is null;
  update user_service_hw set delete_date=julianday('now') where user_service_id=OLD.id and delete_date is null;
  update user_service_balance set delete_date=julianday('now') where user_service_id=OLD.id and delete_date is null;
end;
CREATE TRIGGER view_user_service_insert instead of insert on view_user_service
begin
  insert into user_service (user_contract_id,service_id,note,is_active,is_main)
    values (NEW.user_contract_id,NEW.service_id,NEW.note,NEW.is_active,NEW.is_main);
end;
CREATE TRIGGER view_user_service_update instead of update on view_user_service
begin
  update user_service set
    user_contract_id=NEW.user_contract_id,
    service_id=NEW.service_id,
    note=NEW.note,
    is_active=NEW.is_active,
    is_main=NEW.is_main
  where id=NEW.id;
end;
...
Рейтинг: 0 / 0
Триггер + SELECT.
    #36276123
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И то что создано CREATE VIEW я могу вызвать, не описывая SELECT, к примеру, в гуевом приложении?
...
Рейтинг: 0 / 0
Триггер + SELECT.
    #36276127
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrbrooksИ то что создано CREATE VIEW я могу вызвать, не описывая SELECT, к примеру, в гуевом приложении?
Несколько оригинальная терминология :)
Можно будет писать SELECT * FROM SomeView. Это имелось в виду ?
...
Рейтинг: 0 / 0
Триггер + SELECT.
    #36276143
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry ArefievmrbrooksИ то что создано CREATE VIEW я могу вызвать, не описывая SELECT, к примеру, в гуевом приложении?
Несколько оригинальная терминология :)
Можно будет писать SELECT * FROM SomeView. Это имелось в виду ?

Да я имел ввиду GUI :)

Теперь ясно. Просто я искал аналог процедурам, что бы не писать большие запросы со стороны клиента, а просто вызывать их из базы. Триггеры - это здесь по сути просто события. Я прав?
...
Рейтинг: 0 / 0
Триггер + SELECT.
    #36276171
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mrbrooksПросто я искал аналог процедурам, что бы не писать большие запросы со стороны клиента, а просто вызывать их из базы.
Процедур, как в Firebird или MS SQL, здесь нет.
mrbrooksТриггеры - это здесь по сути просто события. Я прав?
Почти.
...
Рейтинг: 0 / 0
Триггер + SELECT.
    #36276272
mrbrooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry Arefiev, MBG большое вам спасибо за ответы камрады.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Триггер + SELECT.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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