56,687
社区成员
发帖
与我相关
我的任务
分享
delimiter //
create trigger tri_update_bb after insert on aa
for each row
begin
set @n=(select count(*) from bb where bb.title=new.title);
if @n>0 then
update BB set num=num+1 where title=new.title;
else
insert into BB(title,num) values (new.title,1);
end if;
end;
delimiter ;
mysql> create table AA (id int primary key,title int);
Query OK, 0 rows affected (0.05 sec)
mysql> create table BB (title int primary key,num int);
Query OK, 0 rows affected (0.11 sec)
mysql> delimiter //
mysql>
mysql> create trigger tr_AA_bi before insert on AA
-> for each row
-> begin
-> insert into BB (title,num) values (new.title,1)
-> ON DUPLICATE KEY UPDATE num=num+1;
-> end;
-> //
Query OK, 0 rows affected (0.11 sec)
mysql> delimiter ;
mysql>
mysql> insert into AA values (2,1);
Query OK, 1 row affected (0.06 sec)
mysql> insert into AA values (1,1);
Query OK, 1 row affected (0.23 sec)
mysql> select * from aa;
+----+-------+
| id | title |
+----+-------+
| 1 | 1 |
+----+-------+
1 row in set (0.00 sec)
mysql> select * from bb;
+-------+------+
| title | num |
+-------+------+
| 1 | 1 |
+-------+------+
1 row in set (0.00 sec)
mysql> select * from aa;
+----+-------+
| id | title |
+----+-------+
| 1 | 1 |
| 2 | 1 |
+----+-------+
2 rows in set (0.00 sec)
mysql> select * from bb;
+-------+------+
| title | num |
+-------+------+
| 1 | 2 |
+-------+------+
1 row in set (0.00 sec)
mysql>