MySql数据库:
有一个cure表
cure_ID doctor_ID ear drug_ID .....
1 222 111 22222 .....
2 333 222 22221 .....
3 444 333 122456 .....
4 555 444 123165 .....
其中cure_ID是主键 然后我想删除其中的第2条记录,删除后让后面的记录的cure_ID跟着减1即:
cure_ID doctor_ID ear drug_ID .....
1 222 111 22222 .....
2 444 333 122456 .....
3 555 444 123165 .....
用触发器 代码应该怎么写呢?
有一个cure表
cure_ID doctor_ID ear drug_ID .....
1 222 111 22222 .....
2 333 222 22221 .....
3 444 333 122456 .....
4 555 444 123165 .....
其中cure_ID是主键 然后我想删除其中的第2条记录,删除后让后面的记录的cure_ID跟着减1即:
cure_ID doctor_ID ear drug_ID .....
1 222 111 22222 .....
2 444 333 122456 .....
3 555 444 123165 .....
用触发器 代码应该怎么写呢?
解决方案 »
- 数据库新手问下有关Mysql数据类型的问题,求大神解答~~
- 求教各位大侠,数据库里怎样建立这样的表?
- 存储过程 不用临时表,也不用OUT参数,如何返回结果集
- 求教SQL 只包含查询语句
- 求两表关联没数据的又能查出表1数据sql语句怎么写.
- mysql索引的问题
- 随机调用某一栏目若干日以内最新资料的sql语句怎么写?
- asp通过mysql odbc连mysql5数据库,用记录集保存text字段不能,读出来如“?щ”等怪字符,varchar字段多长都没问题
- mysql从5.5降到5.1 需要在那些方面做改动?
- mysql floor 个位为0
- 安装mysql-4.1.7-4.RHEL4.1.i386.rpm遇到的问题
- 求助:mysql添加普通用户 及 授权
create trigger tr_de
on table cure
for delete
as
begin
declare @i int
select @i = cure_id from deleted
update cure
set cure_id = cure_id - 1
where cure_id > @cure_id
end
go
delimiter //
create trigger tg_name after delete on cure
for each row
begin
declare idDeleted INT default 0;
select cure_id into idDeleted from deleted;
update cure set cure_id = cure_id - 1 where cure_id > idDeleted;
end;
delimiter //首先我想这也许是个病例表,如果是的话,那么数据量会很大的,
采用修改ID的方式达到统一,势必会成为整个系统的性能瓶颈。
加入是100W条记录级的话,会很慢。
现在修改以下。
delimiter //
create trigger tg_name after delete on cure
for each row
begin
declare idDeleted INT default 0;
select cure_id into idDeleted from deleted;
update cure set cure_id = cure_id - 1 where cure_id > idDeleted;
end;
delimiter ;