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);
五, 结果截图
来源: http://www.linuxidc.com/Linux/2018-11/155385.htm