Navicat设置Oracle数据库主键自增的方法步骤

目录
  • 一、 创建如下表
  • 二、创建序列
  • 三、创建触发器
  • 总结

一、 创建如下表

Oracle数据库不同于Mysql、Sql Server数据库,Oracle数据库主键自增不能在建表时直接设置,而是需要通过序列和触发器进行设置!

二、创建序列

create sequence SEQ_DEVICEDATAINFO
start with 1
increment by 1
maxvalue  99999999
nocycle
cache 10;

上述语句中:

create sequence SEQ_DEVICEDATAINFO    --SEQ_DEVICEDATAINFO  是序列名
start with 1                                                       --表示从1开始自增
increment by 1                                                 --表示步长为1,如果为2就每次加2
maxvalue 99999999                                         --表示最大值,此行可以不写,无限下去
nocycle                                                             --表示不循环
cache 10;                                                          --表示缓存

除了使用语句,也可以在 Navicate界面中通过工具创建,如下图:

三、创建触发器

create or replace trigger SEQ_DEVICEDATAINFO
before insert on "DeviceDataInfo" for each row
begin
	select SEQ_DEVICEDATAINFO.nextval into :new."id" from dual;
end;

其中:

SEQ_DEVICEDATAINFO           为序列

"DeviceDataInfo"                       为表名称

"id"                                              为表中自增的字段

如下图所示:

此时,打开设计表中的触发器,可以看到已经成功添加如下触发器:

这样,就成功设置了Oracle数据库中的主键自增,可以尝试插入数据,会发现主键ID以步长1递增,如下所示:

总结

到此这篇关于Navicat设置Oracle数据库主键自增的文章就介绍到这了,更多相关Navicat设置Oracle主键自增内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Navicat Premium中Oracle创建主键自增的方法

    1.选中表进入设计,选择触发器, 触发器名称,混合不选,每行,触发前,插入时,启用 2.下面展示触发器代码. // An highlighted block BEGIN SELECT SEQ_EXAM_KNOWLEDGE_BASE.nextval INTO :NEW.ID FROM DUAL; END; 3.两个引用写一下 到此这篇关于Navicat Premium中Oracle创建主键自增的方法的文章就介绍到这了,更多相关Navicat Premium主键自增内容请搜索我们以前的文章或继续浏览

  • Navicat设置Oracle数据库主键自增的方法步骤

    目录 一. 创建如下表 二.创建序列 三.创建触发器 总结 一. 创建如下表 Oracle数据库不同于Mysql.Sql Server数据库,Oracle数据库主键自增不能在建表时直接设置,而是需要通过序列和触发器进行设置! 二.创建序列 create sequence SEQ_DEVICEDATAINFO start with 1 increment by 1 maxvalue 99999999 nocycle cache 10; 上述语句中: create sequence SEQ_DEVI

  • 小议sqlserver数据库主键选取策略

    因为主键可以唯一标识某一行记录,所以可以确保执行数据更新.删除的时候不会出现张冠李戴的错误.当然,其它字段可以辅助我们在执行这些操作时消除共享冲突,不过就不在这里讨论了.主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致.所以数据库在设计时,主键起到了很重要的作用. 常见的数据库主键选取方式有: 自动增长字段 手动增长字段 UniqueIdentifier "COMB(Combine)"类型 一.自动增长型字段 很多数据库设计者喜欢使用自动增长型字段,因为它使用简单.

  • Oracle 创建主键自增表示例代码

    前言 本篇文章给大家主要介绍的是在oracle中如果创建自增长表的方法,这里要用到序列.下面话不多说,我们来看示例代码. 示例代码 create table tb_student ( id NUMBER(10) not null, createtime DATE not null, constraint PK_tb_student primary key (id) ); comment on table "tb_student" is '学生表'; comment on column

  • Springboot+MybatisPlus+Oracle实现主键自增的示例代码

    上周周一,本来刚过完周末,高高兴兴,老大突然安排了个活,要在一天内把项目的MySQL数据库换成Oracle数据库,我们都知道这是不可能完成的任务,但是,秉承着"没有困难的工作,只有不努力的打工人"的精神,我们马上投入了工作,第一步当然是先配置数据库.oracle建表,这个解决调试了一上午,然后下午卡到oracle主键了,所有人网上找方法,一直到第二天凌晨3点半都还没解决,网上方法很多,试了好多都不管用,终于第二天才找到了满足的方法. 废话不多说,下面贴出. application.ym

  • GBase 8s数据库主键约束、唯一约束和唯一索引的区别解析

    主键约束(PRIMARY KEY) 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键,一个表上仅只能有一个主键: 不建议更新主键: 主键列上没有任何两行具有相同值(即重复值),且不允许空(NULL): 主健可作外健,唯一索引不可: 唯一性约束(UNIQUE) 唯一性约束用来限制不受主键约束的列上的数据的唯一性,用于作为访问某行的可选手段,一个表上可以放置多个唯一性约束: 只要唯一就可以更新: 表中任意两行在指定列上都不允许有相同的值,但允许空(NULL): 唯一索引(UNIQUE I

  • sqlserver数据库主键的生成方式小结(sqlserver,mysql)

    主键的生成方式主要有三种: 一. 数据库自动生成 二. GUID 三. 开发创建 严格讲这三种产生方式有一定的交叉点,其定位方式将在下面进行讲解. 第一种方式,主要将其定位在自增长的标识种子:可以设置起始数值,及增长步长.其优点在于使用时完全将并发任务交于数据库引擎管理,你不用担心存在多用户使用的时候会产生两个相同的ID的情况.其缺点也在于此,多数的数据库不提供直接获取标识ID的方式,对于开发人员来说产生ID的方式是透明的,开发人员几乎无法干预此项.对于数据的迁移也不是很方便. 由于存在上面的利

  • Oracle创建主键自增表(sql语句实现)及触发器应用

    1.创建表 复制代码 代码如下: createtableTest_Increase( useridnumber(10)NOTNULLprimarykey,/*主键,自动增加*/ usernamevarchar2(20) ); 2.创建自动增长序列 复制代码 代码如下: CREATESEQUENCETestIncrease_Sequence INCREMENTBY1--每次加几个 STARTWITH1--从1开始计数 NOMAXVALUE--不设置最大值,设置最大值:maxvalue9999 NO

  • java实现数据库主键生成示例

    复制代码 代码如下: package test;import java.util.concurrent.atomic.AtomicInteger; public class IDGenerate {private static final AtomicInteger integer = new AtomicInteger(0);public static long getId() {  long time = System.currentTimeMillis();  StringBuilder

  • Oracle数据更改后出错的解决方法

    在使用Oracle的过程中我们给系统创建了两个用户:com和comtest.前者存放的是正式库数据,后者存放的测试库数据.它们都有一个taw_rm_user表,存放了使用该系统的用户基本信息,于是就是把其中的password字段全部改成了123456. DMP备份文件创建后,经过一段时间创建了几个新的用户,并且有些旧的用户的其他信息也已经更改了.但是需要把旧用户的密码恢复到从前,直接把备份文件中的taw_rm_user表导入com用户下是肯定不行的.经过分析后,得到了一个解决方案.大致思路是:

随机推荐