SQL创建视图(View)盲点之无法同步更新

一、前言

会写这篇文章主要是给自己和大家提个醒。

场景:我有两个视图,分别在不同的服务器,视图A和视图B,通过创建数据库链接实现在视图A获取视图B的内容,在视同A的语句中直接通过通配符“*”查询视图B的所有字段,如下:

--视图A
SELECT * FROM 视图B
--视图B
SELECT 字段A,字段B,..... FROM 表B

上面这段语句看上去是没什么问题的,反正是查所有字段嘛,用*也说的过去

不过问题就这么产生了,如果这个时候我更新了视图B,比如说加了几个字段或者修改几个字段的排列顺序,这个时候你再通过SELECT去查询视图A的时候会发现字段和值会有对不上的情况,甚至在B中新加的几个字段再A中都查不到

这时候我就怀疑视图A并没有实时更新,于是我就把视图A删了重建,发现就可以了

二、建议

创建视图的时候尽量不要使用*,而是明确的指出要查询的字段,如:SELECT 字段A,字段B FROM 视图B,否则就会出现视图无法同步更新的问题

以上纯属个人观点,欢迎讨论

原文地址:https://www.cnblogs.com/wcrBlog/p/12425199.html