返回信息流最近在做实验
在一个问题上面卡住了
所以想请教一下大家
问题是这样的:
现在有9张表,其中有个student表,其主键是student_id,是作为另外两张表的外键存在,而且由于是字母和数字的组合,形如 g1234567 ,就用char来存储的
这次实验当中有道题目就是“定义触发器,当向学生表插入一条记录时,将所有学生的学号值加1”
然后开始时候的思路是这样的:使用substring(student_id,2,7)获得纯数字子串,再用cast转换为integer,加一后,再转换回char,把'g'+修改后的子串 这样连接起来
create trigger insert_tr
on student
for insert
as
declare @tp1 int
declare @tp2 char(20)
begin
update student
set @tp2=substring (student_id,2,7) and @tp1=1+cast(@tp2 integer) and student_id='g'+cast(@tp1 char)
end
语句目前就有问题,但是大体思路如上面所述
现在就发现了问题
因为student_id 是主键
加一的时候就会出现student_id 出现相同的情况
例如g1234567和g1234568是两个student_id
g1234567加一之后就会和g1234568重复
而且还涉及到其他表的引用问题
所以现在就很纠结
不知道怎么继续了
希望路过的同志能够提供一些建议和思路
多谢
这是一条镜像帖。来源:北邮人论坛 / database / #3285同步于 2009/4/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
【请教】sybase下涉及到主键修改的insert的触发器问题
neon007
2009/4/25镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。