手机版
你好,游客 登录 注册
背景:
阅读新闻

在Oracle中创建自动增长字段

[日期:2018-11-19] 来源:Linux社区  作者:remote [字体: ]

Oracle在创建表时和其他的数据库有点不一样,MySql中可以使用“auto_increment”即可。但是Oracle有点麻烦,需要使用序列和触发器达到目的。

具体步骤如下:

一、创建数据表
create table employee(
Id int ,
DeptNo number,
EmpNo number,
Ename varchar2(16),
Job varchar2(32),
Sal float,
HireDate date,
constraint pk_employee primary key(EmpNo)
);

二、创建员工表自动增长序列
create sequence employee_autoinc
minvalue 1
maxvalue 9999999999999999999999999999
start with 1
increment by 1
nocache;

三、创建触发器将序列中的值赋给插入employee表的行
create or replace trigger insert_employee_autoinc
before insert on employee
for each row
begin
select employee_autoinc.nextval into :new.Id from dual;
end insert_employee_autoinc;
/

四、验证
insert into employee(DeptNo,EmpNo,Ename,job,sal,hiredate) values(520,5201002,'James zhou','PD',6000,to_date('2012-10-22','yyyy-mm-dd'));
insert into employee(DeptNo,EmpNo,Ename,job,sal,hiredate) values(521,5211314,'xc','Boss',90000,sysdate);

五、结果截图

更多Oracle相关信息见Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-11/155385.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款