如何在Oracle中进行动态更新?

时间:2011-01-16 00:31:42

标签: sql oracle oracle10g

我的模型表定义如下:

MODEL (id NUMBER, capacity NUMBER ) 

和航班表定义如下:

FLIGHT (flight_number NUMBER, available_seats NUMBER)

我希望每次在FLIGHT表中插入新行时,使用MODEL中定义的容量编号初始化FLIGHT中的available_seats字段。另外,我想在available_seats倒计时到零时通知用户。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我会写一个名为REGISTER FLIGHT的存储过程,它将接受MODEL表的PK作为参数(以及所需的任何其他参数。让程序在MODEL表上进行查找,并将初始行插入到飞行表。

然后,我会有第二个程序叫做BOOK_SEAT,它会在预订航班时减少航班中可用座位的数量。如果预订将available_seats减少到零(或更少),它将抛出异常(例如OVERBOOKED_EXCEPTION)并期望调用者捕获并处理该问题。