Oracle 设置主键自增长__Oracle
转自:https://yq.aliyun.com/ziliao/258074
如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现。不过对于这个数据库的常用功能,我们还是有办法实现的。这里将展示使用触发器来实现主键自增。 1.准备
创建UserInfo表,结构如下:
CREATE TABLE UserInfo ( id NUMBER(10) NOT NULL, username VARCHAR2(15) NOT NULL, password VARCHAR2(15) NOT NULL, CONSTRAINTS PF_UserInfo PRIMARY KEY(id) --创建主键约束 );

创建一个用于自增的序列(requence)
CREATE SEQUENCE Tab_UserInfo_Sequence START WITH 1 MINVALUE 1 MAXVALUE 999999999 INCREMENT BY 1 CACHE 20;
2.触发器
CREATE OR REPLACE TRIGGER Tig_UserInfo_Insert BEFORE INSERT ON UserInfo --插入动作触发器 FOR EACH ROW WHEN(new.id IS NULL) --id值为null时触发 BEGIN select Tab_UserInfo_Sequence.nextval into :new.id from dual; --插入序列值到id值 END;
3.测试用例
INSERT INTO UserInfo(username, password) VALUES('aaa', '111'); INSERT INTO UserInfo(username, password) VALUES('bbb', '222'); INSERT INTO UserInfo(username, password) VALUES('ccc', '333');
查看表数据,结果如下:
4.END
至此,使用触发器设置主键自增已完成。
以上是Oracle 设置主键自增长__Oracle的全部内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有Oracle 设置主键自增长__Oracle的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库 , oracle , 主键 , sql数据库 自增 ,以便于您获取更多的相关知识。
Oracle 设置主键自增长__Oracle的更多相关文章
- Oracle 设置主键自增长
如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现.不过对于这个数据库的常用功能,我们还是有办法实现的.这里将展示使用触发器来实现主键自增. 1.准备 ...
- Oracle设置主键自增长
第一步:为表设置主键 第二步:新建序列 CREATE SEQUENCE SQ.SEQ_INCREASE START WITH 12 MAXVALUE 999 MINVALUE 0 INCREME ...
- 使用pl/sql的文本导入器时如何设置主键自增长
在使用文本导入器批量导入数据时,如果需要设置主键自增长,可以先创建一个序列: create sequence SEQ_Userinf start with 1 increment by 1nomaxv ...
- SQLServer --------- 设置主键自增长
设置主键自增长的两种方式 1.通过图形化的的操作方法进行设置 新建的时候进行设置 第二种是右击设计对已经建好的表进行设置 设置主键 设置自增长 标识增量标识每次自增加多少 标识种子标识从多少开始自 ...
- Oracle实现主键自增长
-- 主键设置:xx_id number(24) primary key 1 create sequence XX_seq --序列名称 increment by 1 -- 每次加几个 start - ...
- mybatis配置oracle的主键自增长
引用自:https://hacpai.com/article/1405392025960 mysql.sqlserver等数据库本身带有主键自增长像auto_increment的功能可以直接使用 us ...
- MySQL的常用命令:添加外键,修改字段名称,增加字段 设置主键自增长等
Mysql命令添加外键 前提是有这么几个表 以mall_product 和 mall_category为例 ALTER TABLE mall_product ADD CONSTRAINT fore_ ...
- 关于oracle设置主键自增的问题
关于orcale设置主键自增的问题 关于主键Oracle中并没有提供一个直接的语句设置,对于这个oralce一般都是用序列和触发器来实现 一下又两种方法来实现 一 ,不使用触发器 创建序列: crea ...
- oracle表设置主键自增长
create or replace table TBL_SYS_USER ( user_id NUMBER(19) not null, user_name ...
随机推荐
- Java中使用注释
在编写程序时,经常需要添加一些注释,用以描述某段代码的作用. 一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上.因此,注释是程序源代码的重要组成部分,一定要加以重视哦! Ja ...
- IntelliJ Idea 免费激活方法免激活码
1. 到网站 http://idea.lanyus.com/ 获取注册码. 2.填入下面的license server: http://intellij.mandroid.cn/ http://ide ...
- c# 查找一个字符串在另一个字符串出现的次数
方法一: string test = "FF FF FF FF 01 00 82 00 00 A2 00 00 FB 07 FF FF FF FF 01 00 82 00 00 A2 00 ...
- Windows平台下Qt QOpenGL中glutSolidSphere()方法未定义的解决方法
Windows平台下Qt中glut库的使用 用Qt中的QGLWidget窗体类中是不包括glut工具库的,难怪在myGLWidget(在我的程序中是QGLWidget的派生类)中绘制实心球体是 ...
- 目标检测 — NMS
1.非极大值抑制步骤 非极大值抑制算法(Non-maximum suppression,NMS)在目标检测中经常用到.我们的检测算法可能对同一目标产生多次检测的结果,非极大值抑制算法可以保证每个目标只 ...
- 解决:phantomjs helloworld.js报错: Can't open 'helloworld.js'
PhantomJS是一个无界面的,可脚本编程的WebKit浏览器引.它原生支持多种web 标准:DOM 操作,CSS选择器,JSON,Canvas 以及SVG. 当我安装好PhantomJS后,写下第 ...
- java常用封装方法
public Map<String,String> getDateByStr(String str,String startDate,String endTime){ Map<Str ...
- 51nod 1010 stl/数论/二分
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1010 1010 只包含因子2 3 5 基准时间限制:1 秒 空间限制:1 ...
- 在.Net下使用redis基于StackExchange.Redis--登录功能
研究了下redis在.net下的使用,因为以前在java上用redis用的是jedis操作,在.net不是很熟悉,在网站上也看了一部分的.net下redis的使用,大部分都是ServiceStack. ...
- Python网络编程2018-01-26更新
前言:使用python3.x写的socket编程,本人wechat:YWNlODAyMzU5MTEzMTQ=. 如果内容有错,请指出来. ssh服务端 # 1.接收一个连接实例 # 2.接收数据 # ...