いくつかの列がある「出席」というテーブルがあります。
2 つの列を追加し、結果を同じテーブルの 3 番目の列に入れたいと考えています。
Mysqlでそれを行う方法は?
新しいエントリが来るたびにそれが起こるようにしたい.
更新:ステートメントを制御できずINSERT
、計算された列の値を保持したい場合は、BEFORE INSERT
トリガーを使用できます
CREATE TRIGGER tg_bi_attendance
BEFORE INSERT ON attendance
FOR EACH ROW
SET NEW.column3 = NEW.column1 + NEW.column2;
column1
注:および/またはの値column2
が更新されている場合は、おそらくカバーする必要があります。そのために別のBEFORE UPDATE
トリガーを使用します。
CREATE TRIGGER tg_bu_attendance
BEFORE UPDATE ON attendance
FOR EACH ROW
SET NEW.column3 = NEW.column1 + NEW.column2;
これがSQLFiddleのデモです
SELECT
それ以外の場合は、節でその場で計算します
SELECT column1, column2, column1 + column2 column3
FROM attendance
またはビューを作成します
CREATE VIEW vw_attendance AS
SELECT column1, column2, column1 + column2 column3
FROM attendance
UPDATE
UPDATE attendance
SET column3 = column1 + column2