Triggers 如何创建将运行子查询以统计数据的触发器

Triggers 如何创建将运行子查询以统计数据的触发器,triggers,oracle10g,constraints,Triggers,Oracle10g,Constraints,我有一个带患者id的预约表。现在我想,一个患者最多可以预约3次。所以我想触发一个在插入数据之前使用患者id检查患者预约总数的触发器。如果计数>3,触发器将引发错误 谁能告诉我怎么做 谢谢这很痛苦,因为明显的方法会导致“突变表”错误。您不能使用触发器,因为您无法将参数传递给触发器。在您的情况下,您需要检查特定的patientid计数,并且您不能在触发器中检查该patientid的计数,因为您不能将patientid作为参数传递。我建议您选择存储过程。实际上,您不能使用触发器或存储过程(它们自己)来

我有一个带患者id的预约表。现在我想,一个患者最多可以预约3次。所以我想触发一个在插入数据之前使用患者id检查患者预约总数的触发器。如果计数>3,触发器将引发错误

谁能告诉我怎么做


谢谢

这很痛苦,因为明显的方法会导致“突变表”错误。您不能使用触发器,因为您无法将参数传递给触发器。在您的情况下,您需要检查特定的patientid计数,并且您不能在触发器中检查该patientid的计数,因为您不能将patientid作为参数传递。我建议您选择存储过程。实际上,您不能使用触发器或存储过程(它们自己)来处理这种类型的约束,因为您的数据库会话在提交其他会话之前无法看到其他会话插入/更新的行。有两种方法可以使用:(1)使用检查约束聚合物化视图;或者(2)使用数据库锁序列化对患者id的访问。