有没有一种方法可以创建一个虚拟表,将其与编辑后的虚拟表进行比较?

时间:2018-09-12 07:09:05

标签: sql eclipse postgresql validation groovy


我有一张表[contractor c],其中只有一个字段[tin]可以编辑。如果用户尝试更改其他字段中的数据,则不得对其进行更新。想知道在编辑之前对c进行查看,然后将视图与已编辑表进行比较是否是一个好主意。但这需要两个脚本-更新前后。
除了锡以外,我还可以对每个字段进行验证,但是字段“很多”。
寻找最佳和最佳方式来完成此任务。

1 个答案:

答案 0 :(得分:0)

这个评论太长了。有许多方法可以描述您的情况。 “视图”不是其中之一。在SQL中,视图是存储的查询。它不存储值。这肯定无济于事,因为视图随基础表而变化。

如果只能更新一列,则一种方法是实现一种触发器,该触发器检查记录的前后版本,并且仅在没有其他字段更改的情况下才允许更新。

您可以开始在documentation中了解触发器。

另一种机制是使表具有不可更新的 except ,以获得对单列的update权限。您可以在documentation中了解权限。

如果由于某种原因您想完成应用程序中的所有工作,则可能会使用事务。在更新满足您的要求之前,您不会提交事务。交易在documentation中进行了说明。