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