我有一个表格参与者,其结构如下所示:
Pid number
name varchar2(20)
version number
每当我在表中插入任何记录时participants
,版本 =1
都会被填充。
例如,如果我插入 pid=1 ,name='Gaurav' 然后记录version =1
get 填充 in participants table
。
现在我issue
的update
在participants
桌子上,
- 假设我正在为参与者表中的 pid=1 更新 name ='Niharika' ,那么需要在同一张表上创建一个 pid=1 、name='Niharika' 和版本 =2 的新记录。
- 我再次为参与者表中的 pid='1' 更新 name='Rohan' ,需要创建 pid=1 、name='Rohan' 和 version=3 的新记录。
我怎样才能做到这一点,显然我需要为将要更新的 pid 获取 max(version)+1 。
我可以使用视图来实现这一点,并使用而不是触发器插入视图,但我对我的解决方案不满意。
我还创建了复合触发器,即使这对我不起作用,因为在触发器内部我需要对该表使用插入语句,这会给我递归错误