我有一个名为“出勤”的表格,其中有几列。
我想添加2列并将结果放在同一个表的第三列中。
如何在Mysql中执行此操作?
我希望每次有新条目时都会发生这种情况。
答案 0 :(得分: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