Oracle建表设置主键自增实现MySQL中的autu_increment
来源:互联网 发布:淘宝尺寸文字自定义 编辑:程序博客网 时间:2024/05/21 09:27
在新项目中接触到了Oracle数据库,和MySQL不同,Oracle没有自增的选项,在创建MySQL时只要auto_increment就可以实现的自增或者是使用自增函数,在Oracle中不适用,自己找了写资料总结如下:
Oracle中没有自增的选项,但在Oracle中出现了新的定义序列[数学上,序列是被排成一列的对象(或事件);这样每个元素不是在其他元素之前,就是在其他元素之后。这里,元素之间的顺序非常重要。]
发现很多用Oracle的人都不会像使用mysql那样,添加语句不写id,因为自增的MySQL会自动添加新的id。
接手项目发现:
insert into admin_info(id,admin_name,admin_realname,admin_pass,status,enterPriseNo)values (seq_admin_info.nextval,#{admin_name},#{admin_realname},#{admin_pass},#{status},#{enterPriseNo})
这里的seq_admin_info.nextval就是序列 序列名为seq_admin_info 其中nextval是获取序列存在最大的下个数字。
到了重头戏,如何添加序列:
--添加序列create sequence seq_backstage_cartes --添加序列名称(一般约定为:'seq_'加数据表的名称)increment by 1 -- 每次加几个start with 1 -- 从1开始计数maxvalue 999999999 -- 最大值
创建和MySQL相同的自增样式:
因为使用上的不通过,所以猜想能否实现和MySQL相同的自增形式,最终得到如下方式:
Tip:同比上面的序列,下面的自动增长可以在insert语句中不添加自增的字段,底层原理还是使用的序列。
创建表
create table member( memberId number primary key, memberMail varchar2(20)not null, memberName varchar2(20) not null, memberPassword varchar2(20) );
然后,你需要一个自定义的sequence
CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE -- 一直累加,不循环 NOCACHE -- 不建缓冲区
你只有了表和序列还不够,还需要一个触发器来执行它!
create trigger mem_trig before insert on member for each row when (new.memberId is null) begin select emp_sequence.nextval into:new.memberId from dual; end;
插入数据
insert into member(memberMail,memberName,memberPassword) values('123@qq.com','jack','123456');
查询表中数据
select * from member;
得到结果为id自动增长。
阅读全文
0 0
- Oracle建表设置主键自增实现MySQL中的autu_increment
- oracle建表设置主键自增
- oracle建表设置主键自增
- 如何对oracle数据库中的表设置主键自增?
- 如何对oracle数据库中的表设置主键自增?
- 对oracle数据库中的表设置主键自增
- 如何对oracle数据库中的表设置主键自增?
- Oracle 设置自增主键
- 设置Oracle主键自增
- oracle设置主键自增
- Oracle自增主键设置
- mysql 设置自增主键
- MySQL设置主键自增
- oracle数据库实现表主键自增
- oracle怎么实现id自增和设置主键
- oracle怎么实现id自增和设置主键
- oracle怎么实现id自增和设置主键
- oracle怎么实现id自增和设置主键
- HDU
- 全国计算机等级考试二级Java笔试基础答案
- LightOJ
- TEXTAREA高度自适应自动展开
- 掌握Linux系统后3个月内找到一份9K运维工作
- Oracle建表设置主键自增实现MySQL中的autu_increment
- leetcode
- MVP模式是你的救命稻草吗?
- 用PIL(Python-Imaging)反转图像的颜色
- UVA
- UISearchBar
- SVN使用方法
- Android中Activity四种启动模式和taskAffinity属性详解
- 最短路径生成树(c++版 Dijkstra(即时和延时))