2013-06-25 2 views
0

В таких программах, как Excel, я могу иметь значение ячейки, равное некоторой функции других ячеек в таблице. Например, ввод «= C1 * D1» в значение ячейки E1 приведет к тому, что E1 будет равен произведению двух других ячеек. Этот продукт автоматически обновляется, если значения C1 или D1 изменены.SQL: вставка данных как функция из других мест в таблице

Есть ли способ создать аналогичную функциональность в SQL? Я знаю, что я мог бы справиться с этим на стороне кода на языке python сервера, изменив все назначения базы данных, которые я могу найти из этих значений, чтобы также изменить соответствующие данные, которые зависят от них.

Я застрял в модификации существующей несколько тысяч сетевых серверных программ, и я предпочел бы, если бы был способ сделать это, не полагаясь на то, что я не пропустил ссылку на базу данных где-нибудь в коде.

+0

При вводе: http://dev.mysql.com/doc/refman/5.1/en/insert-select.html –

+0

Да, он известен как вычисляемый столбец, но я не уверен, что MySQL его поддерживает, я Посмотрим на документацию. – twoleggedhorse

+1

Похоже, что триггеры - это единственный способ: http://stackoverflow.com/questions/5222044/column-calculated-from-another-column – twoleggedhorse

ответ

1

Вы можете посмотреть, как использовать триггер для вставки/обновления. В примерной таблице с тремя столбцами (HoursWorked, HourlyRate, TotalPay), где TotalPay = HoursWorked * HourlyRate, вы можете добавить триггер в таблицу для вычисления TotalPay, когда строка вставлена ​​или обновлена.

+0

Спасибо, я посмотрю триггеры и убедитесь, что они делают то, что мне нужно от их! – Hawkwing

+0

Хм .... им будет немного сложно использовать, но они должны работать нормально после некоторых проб и ошибок. В очередной раз благодарим за помощь. Эта ссылка: http://www.databasedesign-resource.com/mysql-triggers.html может помочь любому, кто пытается следовать по моим стопам – Hawkwing