我有一个名为“出席”的表,其中有几列。
我想添加 2 列并将结果放在同一张表的第三列中。
如何在 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