关于向数据库中的view插入数据

向view中插入的数据会保存在数据库中?我觉得因为view是存储在临时的空间上,它的数据来源于真实的表,如果向view中插入数据,虽然能显示出来,但是如果下次进入数据库后... 向view中插入的数据会保存在数据库中?我觉得因为view是存储在临时的空间上,它的数据来源于真实的表,如果向view中插入数据,虽然能显示出来,但是如果下次进入数据库后,那些插入的数据还是会消失的吧?
你的意思是有些view由于其建立的语句问题,所以能将插入的数据反方向反馈到对应的表中,所以能保存起来?
那么对于我说的这种情况,是不是也是正常的?因为我接触到的view都是直接create的,涉及到很多table的join,所以那些插入到view中的数据应该不会保存下来吧?
展开
 我来答
阳光上的桥
2008-05-07 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65814
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
有的VIEW可以插入数据,数据会保存在相应的表中,看建立的语句。

补充:
各类数据库可能对VIEW的INSERT和UPDATE规定有区别,下面是MYSQL的规定:

关于可插入性(可用INSERT语句更新),如果它也满足关于视图列的下述额外要求,可更新的视图也是可插入的:

·         不得有重复的视图列名称。

·         视图必须包含没有默认值的基表中的所有列。

·         视图列必须是简单的列引用而不是导出列。导出列不是简单的列引用,而是从表达式导出的。下面给出了一些导出列示例:

·                3.14159
·                col1 + 3
·                UPPER(col2)
·                col3 / col4
·                (subquery)
混合了简单列引用和导出列的视图是不可插入的,但是,如果仅更新非导出列,视图是可更新的。考虑下述视图:

CREATE VIEW v AS SELECT col1, 1 AS col2 FROM t;
该视图是不可插入的,这是因为col2是从表达式导出的。但是,如果更新时不更新col2,它是可更新的。这类更新是允许的:

UPDATE v SET col1 = 0;
下述更新是不允许的,原因在于,它试图更新导出列:

UPDATE v SET col2 = 0;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式