今天在使用视图时偶然间发现不能向视图中插入数据,后经过排查找到了原因,特此记录下来。下面请看简单的视图demo ,如下所示,
-
CREATE
OR
REPLACE
VIEW t5
-
AS
-
SELECT last_name ,email
-
FROM employees ;
-
-
SELECT *
FROM t5;
就是这样一个很简单的视图,当我使用插入语句时,发现一直无法插入, 插入语句如下所示:
INSERT INTO t5 VALUES('张飞','zf@163.com');
异常信息如下所示:
造成该问题的原因是: 当向视图中插入数据时,同时也会向原表插入数据插入数据 ,而原表(employees)中存在多个字段不允许为空,所以无法插入 ,将这些不允许为空的字段修改为允许为空即可。