AまたはBの更新時に活性化していないために持っていることを指定する必要があります、トリガーは必要ありません。C
がcomputed column(別名仮想列)である必要があります。
MariaDB [test]> CREATE TABLE t (
a INT,
b INT,
c INT AS ((a/(a+b))*100) PERSISTENT
);
MariaDB [test]> insert into t (a,b) values (1,1);
MariaDB [test]> insert into t (a,b) values (2,2);
MariaDB [test]> select * from t;
+------+------+------+
| a | b | c |
+------+------+------+
| 1 | 1 | 50 |
| 2 | 2 | 50 |
+------+------+------+
2 rows in set (0.01 sec)
MariaDB [test]> update t set b = b*2;
MariaDB [test]> select * from t;
+------+------+------+
| a | b | c |
+------+------+------+
| 1 | 2 | 33 |
| 2 | 4 | 33 |
+------+------+------+
2 rows in set (0.00 sec)
これは単なる例であり、解決策ではありません。どのように正確に構成する必要があるかを判断するには、計算列について読む必要があります。
クライアントにコードを保存するもう1つの理由。 –