mysql触发器

通过 回答 http://www.iteye.com/problems/96882 这个问题,学习了下触发器

 

问题如下:

商家按分数排序0

我有2张表,一张shop商店表,一张shopcomment商店评价表,
shop表有id , name ,score等字段 ,shopcomment 有id ,shop_id ,score 等字段。

现在需要对商店根据评分排序,我的想法是使用触发器, 添加一条商店评价记录,并对相应的商店进行评分计算。 然后查询的时候根据shop表的score字段查询出来。

现在问题是,我以前没试用过触发器,谁能帮我写一下这个例子的mysql触发器。

或者说下,我现在的思路是否有问题。我使用hibernate框架,以前设计的时候shop表没有score字段, 根据评分排序 获取列表处理这个有点麻烦。对了,获取列表的时候最好以shop表为准,因为shop表还关联了其他一些表,比如优惠信息,地区分类等表
-------------
sql语句如下:
mysql>create database shop;
mysql>use shop;
mysql>create table shop(id varchar(200) primary key, name varchar(200), score int);
mysql>create table shopcomment ( id varchar(200) primary key, shop_id varchar(200) references shop(id), score int);
mysql>insert into shop values ('1', '001', 0);
mysql>create trigger trigger1 after insert on shopcomment for each row update shop set score = (select avg(sc.score) from shopcomment sc where sc.id = new.id) where id = new.shop_id;
mysql>insert into shopcomment values('101' ,'1', 10);
mysql>insert into shopcomment values('102', '1', 8);

你可能感兴趣的:(mysql)