G
Мыслитель
(5876)
2 года назад
Для таких случаев обычно используют процедуры. Оформили продажу - вызвали в БД процедуру, которая сделает внутри одной транзакции, примерно такого вида:
begin transaction
--1
INSERT INTO Realization (product_id, date,..., count)
VALUES (prod_id, @sell_date,..., valueX)
--2
UPDATE TABLE Remains (id, modify_date,...., count)
SET count = count - valueX,
modify_date=@sell_date where id = prod_id
end transaction.
И если какая-то из операций навернётся, если, например, в момент оформления отключили ПК/сеть/что-то ещё, то не будет ситуации, что остатки убыли, а реализации не прибыли или наоборот.
Можно и триггерами сделать, но менять триггером от одной таблицы другую - это извращение.
-_-пупкинс_-Ученик (176)
2 года назад
Возникает проблема я не понял что и куда писать я это все делаю в visual studio и там когда создаешь хранимую процедуру выглядет так