Top Eddie005(♂) №.零零伍 (♂) ( ) 信誉:121 Blog 2006-11-09 11:14:00 得分: 0
create table UserInfo ( UserID NUMBER not null, NAME VARCHAR2(100) not null, ENABLE_FLAG NUMBER not null, constraint PK_UserInfo primary key (UserID) )
Top zhuyt0828(假扮的猛男) ( ) 信誉:100 Blog 2006-11-09 11:15:00 得分: 0
sequence
Top mmens(快乐中前行!) ( ) 信誉:100 Blog 2006-11-09 11:16:00 得分: 0
-----------------------------------------------------------------------------
用Sequence能实现以好几位无规则的数字和字母混合编码来自动编号的字段吗?如何操作?
-----------------------------------------------------------------------------
触发器/函数等
使用序列
Top
Eddie005(♂) №.零零伍 (♂) ( ) 信誉:121 Blog 2006-11-09 11:14:00 得分: 0
create table UserInfo (
UserID NUMBER not null,
NAME VARCHAR2(100) not null,
ENABLE_FLAG NUMBER not null,
constraint PK_UserInfo primary key (UserID)
)
Top
zhuyt0828(假扮的猛男) ( ) 信誉:100 Blog 2006-11-09 11:15:00 得分: 0
sequence
Top
mmens(快乐中前行!) ( ) 信誉:100 Blog 2006-11-09 11:16:00 得分: 0
1 一般不在数据库端设主键,依靠程序管理主外键关系。将数据库端的关系解耦到程序段,更利于控制。
2 使用自增类型
3 自己编写生成编号函数(数据库函数)
Top
Eddie005(♂) №.零零伍 (♂) ( ) 信誉:121 Blog 2006-11-09 11:17:00 得分: 0
上面创建了表UserInfo,并设置了UserID为主键;
再创建一个序列:create sequence UserInfo_S
然后,插入语句应该这样写:
insert into userinfo (userid,name,enable_flag)value(userinfo_s.next,"张三",1)
Top
jijl2001(jijl2001) ( ) 信誉:100 Blog 2006-11-09 11:17:00 得分: 0
一般用序列
Top
Eddie005(♂) №.零零伍 (♂) ( ) 信誉:121 Blog 2006-11-09 11:20:00 得分: 0
在Oracle里的自增长编号问题,没有MS SqlServer方便,但是更灵活,因此实现楼主最后一个问题是比较简单的:
insert into userinfo (userid,name,enable_flag)value('No.'+userinfo_s.next,"张三",1)
而在MS SqlServer里,实现这样的编号就比较麻烦
Top
shalen520(Love will keep us alive) ( ) 信誉:100 Blog 2006-11-09 11:26:00 得分: 0
实现以好几位无规则的数字和字母混合编码来自动编号 可以写一个function来做,编号规则修改起来也很方便
Top
MoonQQ(阿康) ( ) 信誉:100 Blog 2006-11-09 11:45:00 得分: 0
用自增序列
CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
Top
用Sequence能实现以好几位无规则的数字和字母混合编码来自动编号的字段吗?如何操作?
用RowID啊!本身就是无序的字母数字混编。