如何让数据表中某个字段按一定的规律自增序插入新的记录中
比如一个内部识别号码,我想用字符"ref"+"yy"+"mm"+"dd"+"00x",其中yy,mm,dd分别为取得的日期中抽出来的两位的年月日,"00x"为001开始的自增量.而yy-mm-dd值变化后,00x又将从001开始自增.
在每次用户提交新的记录时,这个字段将自动在提交时插入新记录的该列中.
比如一条相应列为ref020605001的一条记录,表示该记录是02年06月25日的第一条记录.
请问这样的操作如何实现?
问题点数:80、回复次数:6Top
1 楼lzp_lrp(lzp)回复于 2002-06-05 14:25:01 得分 25
可以的,你用触发器即可实现你的功能
在insert时触发
如果你这个表在程序中用的不是太多的话
你也可以在程序中写Top
2 楼firecatcher(烈火雄心)回复于 2002-06-05 14:32:15 得分 0
我还没有用过触发器,我用的是DW的UPDATE来提交新的记录,那这个触发器要写在哪里呢?
在程序中写触发器和表的使用频率之间有什么关系?
能否说的稍微清楚一点.多谢了.Top
3 楼lmby(鹿门布衣)回复于 2002-06-05 14:45:25 得分 25
string ls_id, ls_date//ls_date为自己拼出来的当前月
select max( ID ) into :ls_id where left( ID, 9 ) = :ls_date;
if isnull( ls_id ) then
ls_id = ls_date + '001'
else
ls_id = left( ls_id, 9 ) + {string( right( ls_id, 3 ) + 1 )}
end if
注:{}里的要自己写代码实现字符+1。Top
4 楼oceanaut(海阔天空)回复于 2002-06-05 14:47:30 得分 20
使用触发器最容易实现,触发器主要写在数据库中。如果你用PowerDesinger的话,就有一个Tab页面是用来写触发器的,进入该页面后,已经有些好的触发器代码,你只要进行相应的修改,即可实现。Top
5 楼firecatcher(烈火雄心)回复于 2002-06-06 10:18:18 得分 0
对不起,请问在数据库里,触发器要写在哪里,大家能否给个例子,不一定要很全面,可以说清楚就可以了.
如果我在程序里每次提交数据时在插入一个识别码,是不是效率比较低呢?Top




