怎样实现在Interbase中自动生成编号(200分)

  • 主题发起人 主题发起人 新水手
  • 开始时间 开始时间

新水手

Unregistered / Unconfirmed
GUEST, unregistred user!
现在要求为每个客户自动生成一个编号,要求编号格式前八位为年月日,后四位为当天的
流水号。采用Interbase数据库,多个客户端同时使用,各位大虾指点一二。我的分全给了。
 
用触发器
 
不知道interbase中有没有“序列”的概念(即ORACLE中的sequence)

如果没有,你可以设一个最大序号表,
每次你的表插入一条新记录,用触发器自动到最大序号表中取最大序号,
加上年月日作为你的表的ID,同时将最大序号表中的最大序号加1;

如果要考虑不同天用不同的流水号,你可以在最大序号表中加上年月日为标志的字段
 
用存储过程,或用程序控制产生智能号,都可以。
 
我想可以这样:编写触发器
在Interbase中设定一个流水号的generator,再设计一个存放日期的数据表;
在触发器中先判断当前系统时间和表中存放的日期是否一致,如果一致就将流水号加一;
如果不一致就将流水号清零,再将现在的日期写入数据表中。
根据系统时间和流水号自动生成编号。

 
我觉得薛獅的方法不错,但怎样区系统的时间?
 
select cast('today' as date) A.* from A
A的记录要少
 
后退
顶部