在一些数据库(例如mysql)中,实现自增id只要在建表的时候指定一下即可,

但是在oracle中要借助sequence来实现自增id,

要用上自增id,有几种方式:

1.直接在insert语句中使用sequence的nextval。

2.在建表时为字段设置default,这种方式我还没测试。

3.使用触发器,关于触发器的方式,从别人那得到了一个示例,暂且先贴到这里作为备忘。我觉得如果default方式如果可用的话,会比使用触发器的方式简单。

以下是触发器方式相关的代码:

CREATE TABLE STUDENT
(
ID INT NOT NULL,
NAME VARCHAR2(4000) NOT NULL,
PRIMARY KEY(ID)
)
TABLESPACE MYDB;
 
--创建自增ID,名称为:表名_字段名_SEQ
CREATE SEQUENCE sTUDENT_ID_SEQ MINVALUE 1 NOMAXVALUE INCREMENT BY 1 START WITH 1 NOCACHE;
 
 
-- 为Insert操作创建触发器,无需在SQL语句里写NEXTVAL,名称为表名_INS_TRG
CREATE OR REPLACE TRIGGER sTUDENT_INS_TRG BEFORE INSERT ON STUDENT FOR EACH ROW WHEN(NEW.ID IS NULL)
BEGIN
SELECT STUDENT_ID_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
END;

未完待续

最新文章

  1. Sprint评分表
  2. 常用的工具类4-IP类
  3. 修改crontab默认的编辑器
  4. Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解
  5. crm plugin 未能加载文件或程序集“xxxx,”或它的某一个依赖项。系统找不到指定的文件。
  6. wecenter—开启CURL扩展,让服务器支持PHP curl函数(远程采集)
  7. SE 2014年5月22日
  8. SAP PS 模块,项目、WBS与网络作业概念
  9. Nginx负载均衡实例
  10. gradle 定义打包后的项目名
  11. Java多线程编程作业总结
  12. python-跨域问题
  13. Scrum Meeting NO.2
  14. 原生JavaScript的DOM操作方法总结
  15. 发布了listener报404
  16. Python基础知识记录
  17. array_uintersect、array_uintersect_assoc、array_uintersect_uassoc 的使用方法
  18. [转]Java 8新特性探究(lambda)
  19. 我所理解的js闭包
  20. SQL 截取字符

热门文章

  1. python time模块总结
  2. 洛谷P3234 抄卡组 [HNOI2014] 字符串hash
  3. django基础-02:虚拟环境
  4. (1.13)mysql优化数据库对象
  5. basename 命令
  6. RN TextInput用法
  7. DataTable 指定位置添加列
  8. 【剑指offer】最小的K个数
  9. .NET 三层框架
  10. python的__getitem__