有时我发现一些代码会使触发器允许用户从View中删除? 但是为什么我们需要从View中删除,因为我们只需要转到表格>并像这个简单的代码一样执行删除:
delete from table where x=y ;
我的问题为什么我们使用TRIGGERS对视图进行删除? 换句话说,在View上使用delete有什么好处!
答案 0 :(得分:2)
我们使用视图的原因主要是隐藏数据的复杂性 来源,隐藏实际表(出于安全原因),保存 我们一遍又一遍地编写相同的代码。
现在,如果你没有让你的用户直接访问这些表,那么他们就是这样 只有在这种情况下通过View才能执行
Deletes
反对意见。触发器仅在View具有多个基础时使用 表。如果是,则无法对视图执行更新,插入或删除操作 影响多个基础表。因此,我们使用
Instead of Delete/Update/Insert Triggers
来执行这些操作 视图。如果您有更新,删除或有多个底层表 仅插入效果它允许您执行一个基础表 声明,但不能保证它会正确完成。
因此,如果您的视图所基于的情况 您应该始终更新/删除/插入多个基础表
1)直接到基础表。
2)使用而不是触发器。
还 Read here ,详细了解为什么不应对具有多个基础表的视图执行更新/删除/插入操作。