欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql触发器

程序员文章站 2022-07-14 10:58:25
...

通过 回答 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);