powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Триггер на обновление
16 сообщений из 16, страница 1 из 1
Триггер на обновление
    #38649233
darkgrey19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE OR ALTER TRIGGER PRIHOD_TOVARA FOR DOGOVORA
ACTIVE AFTER UPDATE POSITION 0
AS
begin
if(new.provod =1 and old.provod=0) then
begin
update tovar t
set t.kolichestvo_na_sklade = t.kolichestvo_na_sklade +
(select tvd.kolichestvo from tovary_v_dogovore tvd where t.id_tovara=tvd.id_tovara)
where t.id_tovara = ( select tvd.id_tovara from tovary_v_dogovore tvd where t.id_tovara=tvd.id_tovara ) ;
end
end

нужно при обновлении таблицы Договора что бы количество товаров , хранящихся в таблице Товары в договоре, прибавлялось к количеству этих товаров на складе то бишь в таблице Товар
данный код возвращает несколько строк были советы сделать через for select in to но не получается реализация
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649298
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darkgrey19были советы сделать через for select
Никогда больше не слушай этих людей.

Выкинь из процедуры все select-ы. Выкинь из товаров их остатки. Полегчает.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649329
darkgrey19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, можешь написать примерно как это будет выглядеть? и в каком смысле выкинуть остатки, остатки мне нужно считать и знать:)
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649344
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darkgrey19остатки мне нужно считать и знать:)
Ну так считай. Но не храни. Тогда триггер не понадобится вообще.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649380
darkgrey19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, по заданию их и хранить тоже нужно
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649384
anpl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darkgrey19begin
update tovar t
set t.kolichestvo_na_sklade = t.kolichestvo_na_sklade +
(select tvd.kolichestvo from tovary_v_dogovore tvd where t.id_tovara=tvd.id_tovara)
where t.id_tovara = ( select tvd.id_tovara from tovary_v_dogovore tvd where t.id_tovara=tvd.id_tovara ) ;
end


нужно при обновлении таблицы Договора что бы количество товаров , хранящихся в таблице Товары в договоре, прибавлялось к количеству этих товаров на складе то бишь в таблице Товар
данный код возвращает несколько строк были советы сделать через for select in to но не получается реализация

Код: sql
1.
2.
3.
4.
5.
6.
declare variable id_t integer;
declare variable kol double precision;
begin 
select sum(tvd.kolichestvo) from tovary_v_dogovore tvd where t.id_tovara=tvd.id_tovara into :kol;
select tvd.id_tovara from tovary_v_dogovore tvd where t.id_tovara=tvd.id_tovara into :id_t;
update tovar t set t.kolichestvo_na_sklade = t.kolichestvo_na_sklade + :kol where t.id_tovara = :id_t;


если я правильно понял что ты хочешь ))) Только через хп делай это :)
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649392
anpl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
c id_t я там намудрил... ну смысл я думаю ясен ))
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649395
darkgrey19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
anpl, в select-ах нету таблицы товара, и если тебе не сложно напиши всю процедуру полностью, у меня траблы с хп((
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649397
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darkgrey19по заданию их и хранить тоже нужно
Читай http://www.sql.ru/forum/964534/hranimye-agregaty-bez-konfliktov-i-blokirovok-recept
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649401
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сессия близится...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649404
darkgrey19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий, именно(( а с БД всегда были проблемы... я больше по C#
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649406
anpl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
darkgrey19anpl, в select-ах нету таблицы товара, и если тебе не сложно напиши всю процедуру полностью, у меня траблы с хп((
написать ее не трудно полностью ) там пару строк...
но хоть немного почитай труды людей! Здесь все более чем подробно описано...
Dimitry Sibiryakovdarkgrey19по заданию их и хранить тоже нужно
Читай http://www.sql.ru/forum/964534/hranimye-agregaty-bez-konfliktov-i-blokirovok-recept
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649409
darkgrey19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
anpl, ок, спасибо!
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649410
darkgrey19
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, Спасибо
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649412
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anplc id_t я там намудрил
Ты намудрил там со всем, чем только можно. Достаточно повесить триггер на
tovary_v_dogovore и он сведётся к одному update, без всяких select.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Триггер на обновление
    #38649420
anpl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovanplc id_t я там намудрил
Ты намудрил там со всем, чем только можно. Достаточно повесить триггер на
tovary_v_dogovore и он сведётся к одному update, без всяких select.

Да согласен! Бездумно его селект распотрошил и все... каюсь...
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Триггер на обновление
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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