是否可以在 MySQL 结构中创建一个自动汇总其他两列的列?
因此,如果我有一个名为 TABLE 的表:
Column A, Column B, and Column C.
我想Column C
自动总结Column A
和Column B
。
那可能吗?
如果A改变,C改变。
如果有可能的话。如果你有任何例子。
您可以使用 VIEW 实现此目的:
CREATE TABLE table1 (a INT, b INT);
CREATE
OR replace VIEW V_TABLE AS
SELECT a, b, a + b AS c
FROM table1;
使用触发器:
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
您需要阅读有关触发器http://dev.mysql.com/doc/refman/5.0/en/trigger-syntax.html
那么您将能够在插入之前和更新之前创建触发器,这将在 C 列中保持正确的值
MySQL 不直接支持计算列。您可以使用触发器来计算列,但您始终可以在查询中检索计算值:
例如:
SELECT ColumnA, ColumnB, (ColumnA+ColumnB) as ColumnC from myTable