|
Создание триггера!
|
|||
---|---|---|---|
#18+
Есть таблица ZAKAZI в ней 3 поля NAME_KLIENT-имя клиента, SUMMA - цена заказа, STATUS - статус заказа( Купил или нет). Вторая таблица INFO_ZAKAZI хранит информацию о заказах в ней 3 поля KLIENT - имя клиента, ALL_SUMMA - сумма по всем заказам данного клиента, KOL-VO -кол-во заказов данного клиента. ЗАДАНИЕ: Создать триггер который при переводе заказа из Не купил в Купил( то есть после обновления статуса ) увеличивает кол-во заказов и сумму заказов данного клиента в таблице INFO-ZAKAZI. Код триггера рабочий: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Тут предусмотрел если наоборот клиент передумал и отменил заказ то есть изменил Купил на Не КУПИЛ. В задание это не входит но я подумал данный триггер работает только если во второй таблице изначально существуют поля с такимиже именами клиентов как и в первой таблице вообщем решил сделать триггер который срабатывает перед добавлением то есть он смотрит есть ли такой клиент в таблице прежде чем его добавить если нет то создать такого клиента при этом нужно посмотреть сразу статус Купил или Не купил если купил то сразу прибавить к общей сумме и кол-ву во 2ой таблице вот код Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
ругаеться на 4 строчку там где переменной присваиваю результат выборки ( в ней смотрю есть ли поля с таким именем ) помогите исправить не как не допру что не так еще нужен триггер после удаления записи из первой таблице но его я сделаю сразу как с этим разберусь может быть так присваивать нельзя или ее нужно объявить где до присваивания ? в ней храниться либо 0 либо число int формата ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 20:11 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
Еще тут при добавлении нужно сразу посмотреть Купил или Не Купил если есть то нужно строчку Код: sql 1. 2. 3.
поменял на Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 20:25 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
Код: sql 1.
перепутал вот эту строчку нужно менять тут она просто проверяет если есть записи но не смотрит Купил или Нет =) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 20:26 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
virtuoz0z0z, Переменную per кто будет объявлять? Триггеры конечно бредовые, но для курсача может и сойдёт ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 20:45 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
это лаба 3 только изучаем ) объявить ее нужно внутри триггера так? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 20:46 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
Симонов Денис, Это лаба мы только изучаем так сказать первые азы переменную нужно объявить внутри триггера так? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 20:48 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
virtuoz0z0z, http://www.firebirdsql.org/file/documentation/reference_manuals/Firebird_Language_Reference_RUS.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 20:50 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
Симонов Денис, CПС разобрался все работает! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 20:52 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
Симонов Денис, Как закрыть тему? На форуме этом ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 20:53 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
virtuoz0z0z, никак. Её закрывают модераторы, если посчитают нужным ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 21:00 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
Если кому понадобиться что-то подобное вот как у меня получилось Код Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 21:01 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
virtuoz0z0zЕсли кому понадобиться... вряд ли ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2016, 21:06 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
Эх, надавать бы по пальцам за STATUS "купил/не купил", ну да ладно - лаба же... А так - неприменимо ни разу. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2016, 10:03 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
Где статусы "Подарили" и "Взял в кредит"? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2016, 10:05 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
WildSery, .. или хотя бы "возврат". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2016, 10:06 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
DarkMaster, Раз статусы на русском, то должен быть "Просрали". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2016, 10:11 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
WildSery, я бы добавил Пропил ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2016, 10:18 |
|
Создание триггера!
|
|||
---|---|---|---|
#18+
линейкой по пальцам: per=(SELECT COUNT(*) FROM INFO_ZAKAZ WHERE KLIENT=NEW.NAME_KLIENT); заменить на: if (exists(SELECT 1 FROM INFO_ZAKAZ WHERE KLIENT=NEW.NAME_KLIENT)) then ... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2016, 11:06 |
|
|
start [/forum/topic.php?fid=40&msg=39213034&tid=1562232]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 154ms |
0 / 0 |