是否可以在MySQL结构中创建一个自动对另外两列进行求和的列?
所以,如果我有一个名为TABLE的表:
Column A, Column B, and Column C.
我希望Column C
自动汇总Column A
和Column B
。
这可能吗?
如果A改变,C改变。
如果可能的话,如果有的话。如果有的话。
答案 0 :(得分:3)
您可以使用VIEW实现此目的:
CREATE TABLE table1 (a INT, b INT);
CREATE
OR replace VIEW V_TABLE AS
SELECT a, b, a + b AS c
FROM table1;
答案 1 :(得分:1)
您需要了解触发器http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html
然后您将能够在插入之前和更新之前创建触发器,这将在C列中保持适当的值
答案 2 :(得分:1)
MySQL不直接支持计算列。您可以使用触发器来计算列,但您始终可以在查询中检索计算值:
例如:
SELECT ColumnA, ColumnB, (ColumnA+ColumnB) as ColumnC from myTable
答案 3 :(得分:1)
使用触发器:
DELIMITER $$
CREATE TRIGGER myTableAutoSum
BEFORE INSERT ON `myTable` FOR EACH ROW
BEGIN
SET NEW.ColumnC = NEW.ColumnA + NEW.ColumnB;
END;
$$
DELIMITER ;
然后这个查询:
INSERT INTO myTable (ColumnA, ColumnB) values(1, 1), (2, 3), (1, 4);
会产生行:
ColumnA ColumnB ColumnC
1 1 2
2 3 5
1 4 5