数据类型的问题

mobilephone 2002-11-12 04:36:15
在MSSQL中,可以将一个整型列设置成自增的,从而作为一个表的主键。请问在ORACLE中用什么类型实现相同的功能?我用了ROWID,不知道对不对?
...全文
32 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jade 2002-11-14
  • 打赏
  • 举报
回复
oracle 中没有这样的字段,要想实现这样的功能必须自己做一些改动。我用的一张表,记录了我所用到的表的当前id号,然后,每次插入新的记录时,同是更新这张id表,就可以了。
Developerljm 2002-11-14
  • 打赏
  • 举报
回复
不对,应该使用number(n,0)(即整型),然后设置它的初始值及递增值,不就ok了吗???
yuxuan 2002-11-14
  • 打赏
  • 举报
回复
Oracle上没有自增字段,可以使用索引和触发器来达到此目的
第一步:创建SEQUENCE
create sequence s_country_id increment by 1 start with 1 maxvalue 999999999;
第二步:创建一个基于该表的before insert 触发器,在触发器中使用该SEQUENCE
create or replace trigger bef_ins_t_country_define
before insert on t_country_define
referencing old as old new as new for each row
begin
new.country_id=s_country_id.nextval;
end;
burnsoft 2002-11-12
  • 打赏
  • 举报
回复
建立序列:
create sequence TEST
minvalue 1
maxvalue 100000 //最大值
start with 1 //初始值
increment by 1

调用序列:
select test.nextval from dual



bzszp 2002-11-12
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1153/1153511.xml?temp=.1822016
  • 打赏
  • 举报
回复
不对!你可以使用序列!

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧