1

BEFORE INSERT ON tableユーザーが特定の列に値を挿入した後、値を計算して同じテーブルを更新するMySQL トリガーを使用して います。これは期待どおりに機能します。しかし、ユーザーが入力を間違えてエラーを修正したため、エラーが修正された後に計算値を更新するトリガーを作成したいと考えています。これを達成する方法はありますか?

4

1 に答える 1

7

トリガーは、行内のBEFORE UPDATE ON table既存の値と新しく提供された値にアクセスでき、必要な条件と式に基づいて、テーブル内の任意の列の値を設定できます。

たとえば、関心のある 1 つ以上の列の値が変更されたかどうかをテストしてから、他の列を何らかの式に設定することができます。

DELIMITER $$

CREATE TRIGGER my_before_update_trigger
BEFORE UPDATE ON my_table
FOR EACH ROW
BEGIN
   IF NOT ((NEW.col1 <=> OLD.col1) AND (NEW.col2 <=> OLD.col2)) THEN
      SET NEW.col3 = NEW.col1 * NEW.col2 ;
   END IF;
END$$

DELIMITER ;
于 2013-03-14T16:15:57.227 に答える