Oracle给表设置自增字段

摘要:
0)NOTNULLENABLE)第二步是为表字段创建一个序列--格式create sequence表名_自增字段名_ SEQUENOMININVALUE--未设置最小值NOMAXVALUE--未设置最大值STARTWITH1--从1 INCREMENTBY1开始--每次添加1个NOCACHE--不创建缓冲区NOCYCLE;

第一步建表

CREATE TABLE USERLOG(
  "ID" NUMBER(8,0) NOT NULL ENABLE
)

第二步为表字段创建序列

--格式
CREATE SEQUENCE  表名_自增的字段名_SEQ
   NOMINVALUE --不设最小值
   NOMAXVALUE --不设最大值
   START WITH 1 --从1开始
   INCREMENT BY 1 --每次加1
   NOCACHE  --不建立缓冲区
   NOCYCLE;  --不循环
--示例
CREATE SEQUENCE  USERLOG_ID_SEQ
   NOMINVALUE
   NOMAXVALUE
   START WITH 1
   INCREMENT BY 1
   NOCACHE
   NOCYCLE;

第三步为序列设置触发器

--格式:
CREATE OR REPLACE TRIGGER 表名_自增的字段名_TRI
BEFORE INSERT ON 表名
FOR EACH ROW 
WHEN (NEW.自增的字段名 IS NULL) --主键不存在才调用触发器
BEGIN
  SELECT 第二步创建的序列名称.NEXTVAL INTO:NEW.自增的字段名 FROM DUAL;
END;
--示例
CREATE OR REPLACE TRIGGER USERLOG_ID_TRI  --触发器名称,格式:表名_自增的字段名_TRI
BEFORE INSERT ON USERLOG
FOR EACH ROW 
WHEN (NEW.ID IS NULL)
BEGIN
  SELECT USERLOG_ID_SEQ.NEXTVAL INTO:NEW.ID FROM DUAL;
END;

  

免责声明:文章转载自《Oracle给表设置自增字段》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle数据库——表的创建与管理git stash (保存工作现场的操作,然后更新或者去进行其他分支的操作,最后恢复工作现场)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS开发之排序方法比较

在开发应用程序的时候,有时我们需要对一组无序的内容进行排序,iOS中有系统自带的方法来对NSAray进行排序,我们来对这些方法进行性能上的对比: NSComparator排序 NSDescriptor排序 function排序 quickSort排序 由于排序的对象经常是自定义的,因此我们定义一个如下的对象: @interface Topic : NSOb...

ES入门 (7) 语法(5)DQL(2)关键字精确查询/多关键字精确查询/指定查询字段/过滤字段

5 关键字精确查询 term 查询,精确的关键词匹配查询,不对查询条件进行分词。 在 Postman 中,向 ES 服务器发 GET 请求 :http://127.0.0.1:9200/student/_search   服务器响应结果: 6 多关键字精确查询 terms 查询和 term 查询一样,但它允许你指定多值进行匹配。 如果这个字段包含了指...

基于.NET Standard的分布式自增ID算法--Snowflake

概述 本篇文章主要讲述分布式ID生成算法中最出名的Snowflake算法。搞.NET开发的,数据库主键最常见的就是int类型的自增主键和GUID类型的uniqueidentifier。 那么为何还要引入snowflake呢? INT自增主键 自增主键是解决主键生成的最简单方案,它有如下优势: 数据库本身负责主键生成,效率高 数据库本身保证主键顺序递增,方...

Linq to sql 有什么办法可以实现消除列重复?

比如数据库里有一表,有两个字段:ID User1 小白2 小红3 小白 过滤User列为小白的重复项后,我想要得到:ID User1 小白2 小红 如果写db.linq.customer.Distinct<customer>();这样只能是每行全部匹配过滤,请问我应该怎么做? 自定义比较运算符: 1 //自定义比较符 2 public...

一千行MySQL学习笔记

以下为本人当年初学MySQL时做的笔记,也从那时起没再更新过,但还是囊括了基本的知识点,有时还翻出来查查。是不是干货,就看亲们了~ 如果哪天笔记有更新了,我还是会更新该文章滴,其实笔记已经放到了GitHub上,只是没告诉你们而已,嚯嚯!  PHP笔记也贴出来了哈~ http://www.cnblogs.com/shockerli/p/2000-plus-l...

oracle-触发器

触发器的定义 触发器定义就是当某个条件成立的时候,触发器里面定义的语句就会自动被执行,因此触发器不需要人为的去调用,也不能调用,并且触发器的触发条件其实是在你定义的时候就已经设定好了。 触发器分类 触发器分为两种 1. 语句级触发器:可以在某些语句执行前或执行后被触发 2. 行级触发器:在定义的触发的表中的行数据改变时就会被触发一次 触发器的语法 1....