-1

いくつかの列がある「出席」というテーブルがあります。

2 つの列を追加し、結果を同じテーブルの 3 番目の列に入れたいと考えています。

Mysqlでそれを行う方法は?

新しいエントリが来るたびにそれが起こるようにしたい.

4

1 に答える 1

1

更新:ステートメントを制御できず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
于 2013-09-15T04:57:12.227 に答える