2013-03-28 4 views
-1

Say Я эти 2 сущности н attributes-SQL функция автоматического обновления

  Cost       Total 

     ------------     ------------ 
      cost_value      total_cost 
     ------------     ------------ 
     |100  |     |360  | 
     |200  | 
     |50  | 
     |10  | 

Здесь «общий» объект сохраняет сумму «стоимость». Теперь я вставляю данные в «стоимость» & автоматически, «total» будет обновляться с новым значением.

Возможно ли записать любую функцию, которая будет вызываться автоматически и выполняет ли задание? Или любым другим способом?

+0

Какая СУБД вы используете? Что вы пробовали? Я бы предположил, что представление будет лучшим решением. – GarethD

+0

Использование mysql. Но я также хочу использовать его в Oracle. –

+0

В настоящее время я делаю это вручную, например: Вставляем в стоимость .... ; Обновление Всего ... ..; –

ответ

2

Есть два способа сделать это:

  1. , если у вас есть хранимая процедура, которая делает вставки вы можете создать еще один, чтобы обновить общее и выполнять их в таком порядке.
  2. Если вставка выполнена в нескольких местах (непосредственно из приложения и из нескольких хранимых процедур), вы можете создать триггер в таблице Total, которая делает обновление и которое запускается каждый раз при вставке/обновлении/удалении на столе cost.
+0

Спасибо, что дали идею о триггере. Я получил свои анны здесь: http://www.codeproject.com/Articles/25600/Triggers-Sql-Server –

+0

В Oracle есть третий способ: материализованные представления. К сожалению, MySQL их не поддерживает (пока), но ими можно моделировать. http://www.fromdual.com/mysql-materialized-views – APC

-1

Странный подход, но в простом решении вам нужно будет иметь 3 оператора SQL. Сначала INSERT в стоимость, затем SELECT SUM (стоимость) и last UPDATE общее с суммарным значением. Example of SUM

+0

В настоящее время я делаю это, но я хочу сделать процедуру UPDATE автоматической. –

Смежные вопросы