如何在oracle表中添加一列数据 ,并且自动增长?

如何在oracle表中添加一列数据 ,并且自动增长?,第1张

oracle中没有自动增长,只有序列
添加一条记录和sqlserver一样
语法:insert into table(列,列,列) values(value,value,value);
如果有个自动增长列
可以用这种方法,首先创建一个序列号SEQ_Test
然后insert into table(ID,列,列) values(SEQ_Testnextval,value,value);

使用如下函数实例

select trim(to_char(1,'00')) from dual; --转换后的效果就是:01

你上面的语句可以这样写:

  if :newcode_carrier is null then
    select to_char(nvl(max(to_number(code_carrier)), 0) + 1, '0000')  -- 几位就写几个0
      into :newcode_carrier
      from tb_code_carrier;
  end if;

不过每次都需要 max() 不是很费效率吗?你可以使用序列进行转换

关于主键:在建表时指定primary key字句即可:
create table test(
id  number(6) primary key,
name varchar2(30)
);

如果是对于已经建好的表,想增加主键约束,则类似语法:
alter table test add constraint pk_id primary key(id);  
其中add constraint 和 primary key是关键字,pk_id是主键名称,自定义的额,只要不重复即可。

也可以自动一些,对表的插入 *** 作,建立一个触发器,每当有数据插入时,触发器自动修改id值为序列的新值,这样就完全实现自增id功能了。不过其实也没有这个必要。因为触发器如果建多了,有时会比较混乱,不易管理。

默认值好设置的 直接在建表语句后面加上default关键字,比如
create table(id number default 0,);
自增长列是没有的,如果想要实现自增长列的话,需要借助序列和触发器来实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13392164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-27
下一篇 2023-07-27

发表评论

登录后才能评论

评论列表(0条)

保存