插入到视图中

仅当视图为可修改并且不包含派生列时才可将行插入到视图中。 第二项限制的原因是插入的行必须为所有的列提供值,但数据库服务器无法指出如何通过表达式来对插入的值进行分布。如前一个示例所示,尝试插入到 response 视图中将失败。

当可修改的视图不包含派生列时,可插入到其中,就像它是表一样。然而,对于视图未显示的任何列,数据库服务器使用 NULL 作为那些列的值。 如果这样的列不允许 NULL 值,那么会出错,并且插入失败。

GBase 8s 视图(包括复杂视图)中插入行(或执行 UPDATE 或 DELETE 操作)的另一种机制是创建 INSTEAD OF 触发器,如 GBase 8s SQL 指南:语法 中所述。