SQL_VIEW视图错位的处理方式和注意

1.问题

视图VIEW1在VIEW2有串用,在VIEW1中最前面增加栏位 L3,未重新编译导致VIEW2视图中的栏位均错位一位。

2.问题详细说明

表1 L : 三个栏位L1,L2,L3

表2 A : 三个栏位A1,A2,A3

表3 B : 三个栏位B1,B2,B3

VIEW1:

|-----------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|
| 原本 | 调整后 |
| CREATE VIEW VIEW1 -- ======================= AS SELECT L1,L2,A.* FROM L.L1= A.A1 | CREATE VIEW VIEW1 -- ======================= AS SELECT L3, L1,L2,A.* FROM L.L1= A.A1 |

VIEW2

|----------------------------------------------------------------------------------------------------------|
| 视图 |
| CREATE VIEW VIEW2 -- ======================= AS SELECT A.*,D.B2 FROM VIEW1 C LEFT JOIN B D ON C.L1=D.B1 |

只更新VIEW1,未重新编译VIEW2的情况下若使用SELECT * FROM VIEW2 会导致显示的数据内容对应连续错一位。

3.解决办法

重新对引用 VIEW1的VIEW2均需要再重新编译一次,同时建议一般新增需要的栏位,放到最后,避免影响最少。

|---------------------------------------------------------------------------------------------------------|
| ALTER VIEW VIEW2 -- ======================= AS SELECT A.*,D.B2 FROM VIEW1 C LEFT JOIN B D ON C.L1=D.B1 |

相关推荐
爱吃牛肉的大老虎21 分钟前
Oracle架构之表空间详解
数据库·oracle·架构
什么鬼昵称39 分钟前
Pikachu-Sql Inject-搜索型注入
数据库·sql
bo_bo0011 小时前
MongoDB的使用
数据库·mongodb
KYumii1 小时前
MySQL-索引
数据库·mysql
techdashen1 小时前
AI不可尽信
数据库
‍。。。1 小时前
Ubuntu 系统崩了,如何把数据拷下来
数据库·ubuntu·php
运维之美@2 小时前
oracle数据备份和导入
数据库·oracle
无妄啊______2 小时前
mysql笔记10(高级部分--跟数据库管理有关)
数据库·笔记·mysql
周周写不完的代码5 小时前
Redis-持久化机制
数据库·redis·缓存
战神刘玉栋5 小时前
《程序猿之Redis缓存实战 · Redis 与数据库一致性》
数据库·redis·缓存