>  기사  >  데이터 베이스  >  mysql-Mysql数据库触发器执行不成功

mysql-Mysql数据库触发器执行不成功

PHPz
PHPz원래의
2016-06-06 09:45:271871검색

相关mysql视频教程推荐:《mysql教程

  • Mysql数据库中有order、orderitem和goods三张表,其中order与orderitem通过order的ID字段与orderitem的orderid字段关联;其中goods与orderitem通过goods的ID字段与orderitem的goodsid字段关联;

  • 现在想做一个触发器,当一个订单被确认的时候,该订单中所有产品的剩余数量和出售数量做相应的改变,order表isvalid字段的值有其他值变为Y的时候更新goods表中store和salecount值,请问写入下的触发器为什么不能实现目的呢,另外在脚本中提示已经创建成功怎么通过SELECT * FROM information_schema.TRIGGERS;查询不到触发器呢?

  • delimiter ||
    drop trigger if exists updatestore||
    create trigger updatestore after update on order for each row
    begin
     declare numorder int(11);
     set numorder = (select count(count) from orderitem where orderid = old.id);
     if new.isvalid ='Y' and old.isvalid !='Y' then
      update goods set store = store - @numorder, salecount = salecount + @numorder where id in (select goodsid from zsorderitem where orderid = old.id);
     end if;
     if new.isvalid !='Y' and old.isvalid ='Y' then
      update goods set store = store + @numorder, salecount = salecount - @numorder where id in (select goodsid from orderitem where orderid = old.id);
     end if;
    end||
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.