表idi(假设商品购买表),字段id,name,num
表uk(假设商品的库存表),字段iid,kucun(对应的值1,1,10)假如idi表中插入一个id为1,name为"手机",num为一个随机数(这个值不固定)的sql语句时,先检测下uk表中iid为1且kucun字段的值,如果这个值>=idi表中num要插入的那个随机数时 才允许插入,同时kucun减去这个随机数(就是客户在购买某个商品时,下单时,先检测下该商品库存个数是否够客户要下的单子(目的是防止商品库存出现负数),如果够了就允许下单,同时库存数减去客户的下单数)
表uk(假设商品的库存表),字段iid,kucun(对应的值1,1,10)假如idi表中插入一个id为1,name为"手机",num为一个随机数(这个值不固定)的sql语句时,先检测下uk表中iid为1且kucun字段的值,如果这个值>=idi表中num要插入的那个随机数时 才允许插入,同时kucun减去这个随机数(就是客户在购买某个商品时,下单时,先检测下该商品库存个数是否够客户要下的单子(目的是防止商品库存出现负数),如果够了就允许下单,同时库存数减去客户的下单数)
on idi
for each row
begin
set @x=(select kucun from uk where iid=new.id);
if new.num<=@x
then update uk set kucun=kucun-new.num where iid=new.id;
end if;
end;这个触发器能保证插入时库存中的数量会相应减少,但是不能阻止插入的进行,我还在想该怎样做