六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 35|回复: 0

触发器

[复制链接]

升级  89.33%

46

主题

46

主题

46

主题

秀才

Rank: 2

积分
184
 楼主| 发表于 2013-1-19 04:09:03 | 显示全部楼层 |阅读模式
触发器:分别对四家餐厅的就餐号码用触发器递增CREATE TRIGGER orderhistory_bi BEFORE INSERT ON orderhistory  FOR EACH ROWBEGIN  DECLARE dinnerno INTEGER;  SELECT MAX(orderHistoryDinnerNo) INTO dinnerno FROM orderhistory WHERE DATE_FORMAT(orderhistorydinnertime,'%m-%d-%Y') = DATE_FORMAT(NEW.orderhistorydinnertime,'%m-%d-%Y');  IF ISNULL(dinnerno)   THENset NEW.orderHistoryDinnerNo = 1;  ELSEset NEW.orderHistoryDinnerNo = dinnerno+1;  END IF;ENDcreate view tb_dinnerno asselect orderhistory.orderhistorydinnerno,DATE_FORMAT(orderhistory.orderhistorydinnertime,'%Y-%m-%d') as orderhistorydinnertime ,canteen.canteenid,canteen.canteenname,menuitem.menuitemoffertime,menuitem.menuitemidfrom orderhistory,canteen,menuitemwhere orderhistory.menuitemid = menuitem.menuitemid and menuitem.canteenid = canteen.canteenidgroup by canteen.canteennamehaving max(orderhistory.orderhistorydinnertime);order by orderhistory.orderhistorydinnertime desc;select c.canteenname, o.orderhistorydinnerno from orderhistory o,menuitem m,canteen c where o.menuitemid = m.menuitemid and m.canteenid = c.canteenid  and o.orderHistoryIsDeleted = 'N'CREATE TRIGGER orderhistory_bi BEFORE INSERT ON orderhistory  FOR EACH ROWBEGIN  DECLARE dinnerno INTEGER;  DECLARE canteen INTEGER;  SELECT  canteenid INTO canteen FROM menuitem WHERE menuitemid = NEW.menuitemid;  SELECT max(orderhistorydinnerno) INTO dinnerno FROM tb_dinnerno WHERE DATE_FORMAT(orderhistorydinnertime,'%Y-%m-%d') = DATE_FORMAT(NEW.orderhistorydinnertime,'%Y-%m-%d') and canteenid = canteen;  IF ISNULL(dinnerno)   THENset NEW.orderHistoryDinnerNo = 1;  ELSEset NEW.orderHistoryDinnerNo = dinnerno+1;  END IF;END
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表