在数据库中实现主键自动增长有利于我们做数据插入操作,在SQL SERVER上创建表时可以在int类型的字段后加上identity(1,1),该字段就会从1开始,按照+1的方式自增,将这个字段设置为主键。MySql中可以使用“auto_increment”即可。而oralce实现该效果需要使用序列配合触发器使用。

下面是一个具体实例:

1.创建数据库表:

create table employee
(
  EID      INTEGER,
  NAME     varchar2(10),
  SURNAME  varchar2(10),
  GENDER   varchar2(10),
  STATE    varchar2(10),
  BIRTHDAY date,
  HIREDATE date,
  DEPT     varchar2(10),
  SQLARY   INTEGER
)
;

2.创建序列:

create sequence EID_AUTOINC
minvalue 1
maxvalue 9999
start with 57
increment by 1
nocache;

3.创建触发器:

CREATE OR REPLACE TRIGGER employee_EID --触发器名称
  BEFORE INSERT ON employee    --EMPLOYEE是表名
  FOR EACH ROW
DECLARE
   NEXTID NUMBER;
BEGIN
  IF :NEW.EID IS NULL OR :NEW.EID=0 THEN --EID是列名
    SELECT EID_AUTOINC.nextval --EID_AUTOINC是刚才创建的序列
    INTO NEXTID
    FROM DUAL;
     :NEW.EID:=NEXTID;
  END IF;
END employee_EID;

4.插入数据测试:

insert into employee
  ( name, surname, gender, state, birthday, hiredate, dept, sqlary)
values
  ( 'm', 'f', 'f', 'QQHE', to_date('1986-08-01','yyyy-mm-dd'), to_date('2010/08/24','yyyy-mm-dd'), 'C-center', '3500');

5.查询验证:

select * from employee

转载于:https://www.cnblogs.com/shiGuangShiYi/p/10117563.html

更新oracle数据库表如何实现主键自增长相关推荐

  1. Oracle数据库:约束条件:主键约束、唯一约束、检查约束、非空约束、外键约束、默认值填写

    Oracle数据库:约束条件:主键约束.唯一约束.检查约束.非空约束.外键约束.默认值填写 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开 ...

  2. mysql主键干嘛的_数据库表中的主键有什么作用?

    展开全部 数据库主键 主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行.这样e69da5e6ba9062616964757a686964616f31333365643534的一列或多列 ...

  3. oracle建表 和 设置主键自增

    1.新建table CREATE TABLE ysb_log(id number(8) primary key not null ,tbdate varchar(50) NULL,tb_time va ...

  4. 数据库表可以没有主键吗?

    又碰到有项目上的问这个问题 主键的作用: 1)保证实体的完整性; 2)加快数据库的操作速度 3)在表中添加新记录时,数据库会自动检查新记录的主键值,不允许该值与其他记录的主键值重复. 4) 数据库自动 ...

  5. Oracle建表不设主键,oracle建表,设置主键,修改属性等

    --建表 create table book( book_id number(10), book_name varchar2(20), book_price number(10,2), book_au ...

  6. 怎么查看oracle数据库表的主键,Oracle中查看所有的表,用户表,列名,主键,外键...

    在Oracle中查看所有的表: select * from tab/dba_tables/dba_objects/cat; 看用户建立的表 : select table_name from user_ ...

  7. oracle中的表怎样保存,怎样保存excel 表格数据库中-如何将excel表格更新oracle数据库中数据...

    如何将excel表格更新oracle数据库中数据 这里以SQL SERVE2008为例.SQLSERVER2008有一个"数据导入导出功能",当然我们也可以打开数据库之后,在数据库 ...

  8. MYSQL学习笔记06:列属性[NULL,default,comment],主键,自增长,唯一键,数据库设计规范[范式(1NF,2NF,3NF),逆规范化],表关系[1V1,1VN,NVN]

    列属性 列属性又称为字段属性. 在mysql中一共有6个属性:null,默认值,列描述,主键,唯一键和自增长. NULL属性 NULL属性代表字段为空. 如果对应的值为yes表示该字段允许为null, ...

  9. 2005数据库导入mysql没有主键_MSSQL2005数据库导入导出+带主键、自动增量、关系图、表架构等...

    MSSQL2005数据库导入导出+带主键.自动增量.关系图.表架构等 关键词:mssql2005.导入导出 1.在本地安装Mssql Server 2005 2.接着安装SQLServer2005_X ...

最新文章

  1. 北理计算机考研机试,北理工计算机2000-2010考研机试题目c语言实现.doc
  2. videoleap怎么导出本地_视频号小视频怎么制作?(附工具软件)
  3. python图形化界面按钮_Python-PyQt5-图形可视化界面(3)--按钮--Qpushbutton
  4. 01.微服务系列介绍
  5. 计算1~n之间所有奇数之和_所有奇数长度子数组的和
  6. 图论 —— DAG 图的最长路
  7. qt4 mysql_qt4连接mysql_MySQL
  8. UE4 打包C++项目到win32平台报错 could not find mspdbcore.dll
  9. RocketMQ(十六)RocketMQ消息存储机制
  10. 开源免费财务软件中文版GnuCash
  11. Activity 生命周期详解与异常情况生命周期
  12. Helm-chart学习-简单介绍与使用
  13. 使用谷歌浏览器查看ws消息
  14. 蓝桥杯——大臣的旅费
  15. matlab绘制法线信息、矢量场
  16. vivado查看内部资源占用情况
  17. 第四节:逻辑控制【java】
  18. 基恩士编程c语言,基恩士xg7000系列.pdf
  19. Web安全 -- 信息收集(上)
  20. 王延炯_海量数据处理的架构与实践

热门文章

  1. OpenCV学习(4) Mat的基本操作(1)
  2. 12 个的优秀手机设计灵感
  3. 乐观锁和悲观锁的区别(最全面的分析)
  4. ABP理论学习之工作单元(Unit of Work)
  5. Theano - 循环
  6. “大型票务系统”和“实物电商系统”的数据库选型
  7. C笔记(2014-12备份)
  8. MDT2013折腾记-UDP端口冲突
  9. AssetManager asset使用
  10. [九度][何海涛] 数组中出现次数超过一半的数字