如果想在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

至此,使用触发器设置主键自增已完成。

最新文章

  1. knockoutJS学习笔记02:jsRender模板引擎
  2. vim使用总结
  3. iOS上获得MAC地址
  4. 总结iframe高度自适应,自适应子页面高度
  5. python之--条件判断和循环
  6. [javascript]event属性
  7. Cocos2d-x CCProgressTimer
  8. ZOJ 1204 一个集合能组成多少个等式
  9. 数据处理包dplyr的函数
  10. 三、编辑 Update set
  11. 我的Windows日常——炫酷的windows组件命令行打开方式
  12. 使用jquery移除前面通过onclick绑定的元素的事件,然后重新绑定别的函数来执行onclick事件。
  13. BZOJ-9-3295: [Cqoi2011]动态逆序对
  14. java国际化
  15. Pycharm的激活码,亲测可用(20181223)
  16. Unity RGBA16 + Dither
  17. 初识github之注册和基本概念
  18. Flume的基本概念
  19. vue2.0-组件传值
  20. 【LLVM笔记】0x00 初识LLVM 链接类型

热门文章

  1. 在Python中,如何用一行代码去判定整数二进制中的连续 1
  2. Visual Studio 2019社区版:错误 MSB6006 “CL.exe”已退出,代码为 2
  3. 使用Parallel计算目录中的文件字节长度
  4. 牛客小白月赛12 I 华华和月月逛公园 (tarjian 求桥)
  5. elk快速入门-filebeat
  6. 《编译原理》控制流语句 if 和 while 语句的翻译 - 例题解析
  7. 今日理解之js
  8. nginx 缓存,大文件分片请求方法
  9. Oracle之:Function :getdate()
  10. PPM / PGM / PBM 图像文件格式[转]