Обновить одно поле при изменении другого - MySQL

Узнай цену своей работы

Формулировка задачи:

Как автоматически обновить одно поле при изменении другого? Требуется копировать данные поля `smsLimit` при его обновлении в smsFree (как минимум), и "как максимум" - по условию if ( `smsLimit`<> 0), и наконец "как сверх задача" - if ( `smsLimit` == 0) SET (smsFree) VALUES (100000000') else SET smsFree = smsLimit . Как это сделать средствами MySQL?
CREATE TABLE IF NOT EXISTS `astSMSdevices` (
`devID` int(10) NOT NULL,
  `smsdevice` varchar(50) NOT NULL,
  `gateType` varchar(50) NOT NULL,
  `portOnGate` varchar(10) NOT NULL,
  `group` int(11) NOT NULL DEFAULT '0',
  `priorInGroup` int(11) NOT NULL DEFAULT '0',
  `smsLimit` int(10) NOT NULL DEFAULT '0',
  `smsFree` int(12) NOT NULL DEFAULT '100000000',
  `doOFFatLImit` int(11) NOT NULL DEFAULT '0',
  `newdevIDatLimit` int(11) NOT NULL DEFAULT '0',
  `timeToLimReset` timestamp NULL DEFAULT NULL,
  `isInUse` int(11) NOT NULL DEFAULT '0',
  `isLineOK` int(11) NOT NULL DEFAULT '1'
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

Решение задачи: «Обновить одно поле при изменении другого»

textual
Листинг программы
ELSE IF NEW.smsLimit <> OLD.smsLimit THEN SET NEW.smsFree=NEW.smsLimit;

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы