oracle主键自增
前言
众所周知,MySQL数据库的主键自增设置非常简单,任何一个常用的可视化工具都支持,只要打一下勾就可以开启主键自增了。然而Oracle并没有那么简单,它需要执行几个简短语句。
操作步骤
为了方便讲解,SQL脚本中的表用 tableName,主键为 id
1. 创建序列sequence
sequence命名建议为表名_主键_seq
,因为oracle会把所有的sequence放到同一张表里,若不好好区分,非常容易发生创建sequence冲突。
create sequence tableName_id_seq
-- 从主键从1开始minvalue 1
-- 不设置最大值nomaxvalue
-- 每次增加1increment by 1nocache;
2. 创建触发器trigger
trigger命名规范同sequence,必须要先创建sequence,再创建触发器。建议不要两个语句同时运行,多数情况语句会并发进行,trigger创建时若sequence没有先创建完成,执行结果是两条语句都成功,但实际操作时会导致主键自增失败。
create trigger tableName_id_tribefore insert on tableName for each row when (new.id is null)
beginselect tableName_id_seq.nextval into:new.id from dual;
end;
3. Mybatis-plus (根据自己使用的ORM框架而定)
主键类型设置为自增
@TableId(type=IdType.AUTO)
设置主键自增常用辅助语句
1. 查询当前最大的主键id序号
select max(id) from tableName;
2. 查看sequence的详细信息
table_id_seq指是自己设置的sequence名称
select * from USER_SEQUENCES where SEQUENCE_NAME = 'table_id_seq';
3. 设置last_number
注意:这个你不一定有权限能修改,除非你就是管理员用户
update user_sequence set last_number 200 where SEQUENCE_NAME = 'table_id_seq';
4. 删除sequence
drop sequence table_id_seq;
5. 查看全部sequence
select * from USER_SEQUENCES;
6. 查看全部触发器
select trigger_name,table_name from all_triggers where table_name = 'tableName';
7. 删除trigger
drop trigger table_id_tri
oracle主键自增相关推荐
- mybatis 实现oracle主键自增的机制
本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 [sql ...
- oracle自增主键用途,Oracle主键自增
在设置主键自增时有几种方法,今天介绍其中一种方法:sequence+trigger 1.创建表 create table tbl_card --创建校园卡表 ( id int primary key, ...
- 1、Oracle主键自增、清0,与用户授权
1.相关命令: sqlplus /nolog 查看Oracle数据库是否安装成功 conn uid/ups@orcl 连接数据库::uid是用户名.ups是密码,orcl是数据库名 通过S ...
- mybatis-puls 集成oracle 主键自增
oracle通过mybatis-puls新增数据时,主键自增不同于MySQL添加注解,oracle需要进行配置 1,创建表 2,创建序列 create sequence XXX_SEQ INCREME ...
- Mybatis 中Oracle主键自增设置
Oracle中不存在mysql那种主键自增的设计 1. 序列+selectKey标签 Oracle新建序列 CREATE SEQUENCE [序列名称] INCREMENT BY 1 /**每次自增1 ...
- oracle主键自增触发器编写
1.创建自增序列 create sequence 序列名 minvalue 1 nomaxvalue increment by 1 start with 1 nocache; 2.创建对应表的触发 ...
- oracle hibernate 主键,hibernate oracle 主键 自增
Hibernate 实现对oracle 数据库表ID的自动增长 1:建表 Create table test_table ( id integer ...
- oracle主键可以自增吗,设置Oracle主键自增
oracle没有设置主键auto increment的功能,需要自己编写序列和触发器实现主键自动递增. 示例: 创建表menu: create table menu( menuId number(10 ...
- oracle主键自增 数据插入时主键自增
1.建表 create table overseas_users(overseas_id varchar2(10) not null primary key, --主键name varchar2(50 ...
最新文章
- 2020中国一流大学名单(27所)和中国大学综合实力300强出炉!
- SCSI软件层对性能的影响
- ubuntu之路——day8.4 Adam自适应矩估计算法
- iBatis resultMap出错 The error happened while setting a property on the result object 解决办法
- io-同步 异步 阻塞 非阻塞
- 17/100. Maximum Subarray
- [html] 使用div+css进行布局有什么好处?
- 全国计算机等级考证管理系统,猎证全国计算机等级考试学习系统
- MMU页表的内存消耗
- Appcan将支持在线编译提交App Store
- sql转义模块php,sql注入与转义的php函数代码_php技巧
- Spss 的基本方法使用步骤
- 计算机网络介绍,TCP协议,Socket网络编程
- django基础(四)详解Views视图层
- c++ 的interface
- 如何部署软件 - 让你团队的部署像地狱一样无聊且毫无压力
- 互联网 必须有免费的精神
- PYTHON-模块 re subprocess
- Linux 下使用 sem_t 有名信号量的注意事项
- 2020年 Web 开发的最佳编程语言
热门文章
- 标签打印软件如何打印指定页码
- mysql常用语句【转载】
- android:scaleType=“centerCrop”
- SqlServer 删除索引语句
- Android多效果轮播器/Banner实现,支持无限轮播、自动切换、指示器动画
- 计算机音乐带你去旅行数字乐谱,带你去旅行(抖音热门歌曲,校长)钢琴谱钢琴简谱数字谱钢琴双手简谱.pdf...
- 【记录】使用在线KMS激活win10系统
- 猎头操作过程及技巧--ZT
- 视频播放破亿,抖音近期的流量密码是什么
- Kinect 开发小记:穿越艾泽拉斯,调戏红龙女王