有没有办法链接两个表,所以当我改变基表时,视图也会改变?这样的事情:
CREATE TABLE t (qty INT, price INT);
INSERT INTO t VALUES(3, 50);
CREATE VIEW v AS SELECT * FROM t;
SELECT * FROM v;
+------+-------+
| qty | price |
+------+-------+
| 3 | 50 |
+------+-------+
ALTER TABLE t ADD COLUMN comm INT;
SELECT * FROM t;
+------+-------+------+
| qty | price | comm |
+------+-------+------+
| 3 | 50 | NULL |
+------+-------+------+
SELECT * FROM v;
+------+-------+
| qty | price |
+------+-------+
| 3 | 50 |
+------+-------+
最后两个SELECT-s应该相等。
PS。我知道MySQL说:
视图定义在创建时被“冻结”,因此之后对基础表的更改不会影响视图定义。
也无法创建触发器,因为触发事件不包括ALTER TABLE
答案 0 :(得分:1)
视图定义“冻结”在 创作时间,所以改变了 后面的基础表没有 影响视图定义。对于 例如,如果视图定义为 SELECT *在表上,添加了新列 以后不要成为一部分 观点。
掉落&重新创建视图或ALTER视图。