<font color="#FF6666">急!关于autoinc字段的问题</font>(200分)

  • 主题发起人 主题发起人 邹光先
  • 开始时间 开始时间

邹光先

Unregistered / Unconfirmed
GUEST, unregistred user!
1、怎么在before insert trigger中,使primary key---studid的值自动加1?我的设想是这样的:
CREATE TRIGGER BEFOREINSERT FOR STUDENT BEFORE INSERT POSITION 0 AS
DECLARE VARIABLE maxid INTEGER;
BEGIN
select max(studid) from student into :maxid;
maxid=maxid+1;
new.studid=maxid;
END
(注:studid是not require的)但是,当我用光标移动到表的最后,添加记录的是候,老师出现两条记录,大致的显示是这个样子:
studid name
1 a
b <- step1:移动向下的光标到这个位置写入的内容,注意前面还没有studid. 届着再按向下键,现在内容是这样的了 :
1 a
b
2 b <- 自动出现的.
怎么解决他?


2、有两个表student 和 floor,他们之间用studid连接,其中studid是student的主键,我希望将student中得一些字段和floor中的一些字段一起用grid显示出来,但我insert一条纪录的时候,用1可以自动使studid的值加一,我要闻得失,怎么让floor中的studid中填上相应的studid?
 
大侠们,请帮忙啊。急用!:)
感谢了。:)
 
实际上,你可以换一个TRIGGER,如AFTER INSERT 看看,
在BEFORE INSERT时,SELECT语句可能改变了数据库的状态。
 
如果是 after insert,那么要这个字段为可以空的。
 
可以用generator来控制,具体见employ表格的例子。
 
多人接受答案了。
 
对不起,那位大虾能告诉我是怎么解决的?用generator?怎么用?
 
后退
顶部