oracle中实现自增id
2024-08-24 09:49:58
在一些数据库(例如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;
未完待续
最新文章
- Sprint评分表
- 常用的工具类4-IP类
- 修改crontab默认的编辑器
- Eclipse进行C/C++开发——Eclipse+CDT+MinGW的配置与使用详解
- crm plugin 未能加载文件或程序集“xxxx,”或它的某一个依赖项。系统找不到指定的文件。
- wecenter—开启CURL扩展,让服务器支持PHP curl函数(远程采集)
- SE 2014年5月22日
- SAP PS 模块,项目、WBS与网络作业概念
- Nginx负载均衡实例
- gradle 定义打包后的项目名
- Java多线程编程作业总结
- python-跨域问题
- Scrum Meeting NO.2
- 原生JavaScript的DOM操作方法总结
- 发布了listener报404
- Python基础知识记录
- array_uintersect、array_uintersect_assoc、array_uintersect_uassoc 的使用方法
- [转]Java 8新特性探究(lambda)
- 我所理解的js闭包
- SQL 截取字符