Oracle 通过触发器实现ID自增
Oracle不像Mysql,SQLServer能够直接设置ID自增,但是可以通过触发器实现ID自增。
1 创建测试表
create table t_goods(id number primary key, good_name varchar2(50));
2 创建序列
create sequence seq_goods_id
start with 1
increment by 1;
3 创建触发器
create or replace trigger tr_insert_good
before insert on goods for each row
begin
select seq_goods_id.nextval
into :new.id
from dual;
end;
4 插入测试数据
insert into t_goods(good_name)
values('Transforms');
insert into t_goods(id,good_name)
values(2,'Lego');
insert into t_goods(id,good_name)
values(2,'Cube');
5 查询测试结果
可以看出我们使用触发器对ID设置自增之后,在插入数据的时候我们对ID赋值没有起到任何作用,它始终按照触发器设置的模式进行自增。
Oracle 通过触发器实现ID自增的更多相关文章
- oracle 使用触发器实现id自增
前提:存在数据库di_test,主键为id.1.创建一个索引sequence create sequence di_test_id minvalue 1 nomaxvalue start with 1 ...
- Oracle中用序列和触发器实现ID自增
在设计数据库的时候,Oracle中没有类似SQL Server中系统自动分配ID作为主键的功能,这时Oracle可以通过“序列”和“触发器”来实现ID自动增加的功能. 1.创建序列Sequence c ...
- oracle 实现主键id自增
公司现在项目数据库使用oracle,oracle实现表主键自增比mysql麻烦 mysql 在表主键auto_increment 打钩即可.oracle没有改属性,就相对麻烦.特此记录一下自增方法 测 ...
- oracle 序列 + 触发器 实现 ID自动增长
1.创建序列 create sequence emp_sequence increment by ----每次增加几个 minvalue ----最小值为1 nomaxvalue----不限制最大值 ...
- oracle如何创建表的自增ID(通过触发器)
Oracle中创建表的自增ID(通过触发器),序列的自增ID和触发器的自增ID的区别 1.新增数据(序列) --创建示例表 -- create table Student( stuId ) not n ...
- Oracle 给表添加主键和使ID自增、触发器、创建结构一样的表
1.关于主键:在建表时指定primary key字句即可:create table test( id number(6) primary key, name varchar2(30));如果是对于已经 ...
- hibernate解决oracle的id自增?
以前做SSH项目时,涉及到的数据库是mySQL,只需将bean的配置文件id设为native 就可以实现表id的自增. 现在用到了Oracle,当然知道这样是不行的啦,那么用序列自增? 我在网络上搜索 ...
- oracle入坑日记<六>自增列创建和清除(含序列和触发器的基础用法)
0 前言 用过 SQLserver 和 MySQL 的自增列(auto_increment),然而 Oracle 在建表设置列时却没有自增列. 查阅资料后发现 Oracle 的自增列需要手动编写. ...
- Oracle ID 自增
实现Oracle Id自增 1.方法一(Oracle Version Oracle 12c版本支持) create table app_student( id integer generated by ...
随机推荐
- 在环中(Going in Cycle!!, UVa 11090)
[题目描述] 给定一个 n 个点 m 条边的加权有向图,求平均权值最小的回路. [输入格式] 输入第一行为数据组数 T .每组数据第一行为图的点数 n 和边数 m (n ≤ 50).以下 m 行每行3 ...
- Tribonacci UVA - 12470 (简单的斐波拉契数列)(矩阵快速幂)
题意:a1=0;a2=1;a3=2; a(n)=a(n-1)+a(n-2)+a(n-3); 求a(n) 思路:矩阵快速幂 #include<cstdio> #include<cst ...
- httpclient实现的get请求及post请求
导出mven依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId& ...
- 堆-STL
往堆中加一个元素的算法(put): #include<algorithm> void put (int d) { heap[++heap_size]=d; push_heap(heap+, ...
- 理解Selection对象
理解Selection对象 Selection对象的属性如下: var selection = window.getSelection(); console.log(selection); 通过上面的 ...
- git速度太慢
适用各种操作系统,本次测试于ubuntu,下载速度从二十几k提高到二百多k 1.查找域名对应的ip地址,并修改hosts文件 nslookup github.global.ssl.fastly.Net ...
- 【Codeforces Gym 100725K】Key Insertion
Codeforces Gym 100725K 题意:给定一个初始全0的序列,然后给\(n\)个查询,每一次调用\(Insert(L_i,i)\),其中\(Insert(L,K)\)表示在第L位插入K, ...
- ubuntu 14.04 安装jdk 1.8
一,如何删除低版本的open JDK? 在ubuntn的软件中心中,如果输入"Java",我们会看到open JDK,但是最高版本是1.7,也有1.6版本的,如果我们安装上去,可能 ...
- odoo11新开发功能模块测试指南
根据实际业务需要,我们开发了一些生产实务中一些功能模块,作为制造行业管理信息化解决方案的基础,并应部分客户需求,做了测试系统,现将测试方式公布如下: 一.测试环境 服务器地址 http://106.1 ...
- nginx 安装问题
yum -y install xxx pcre-devel openssl-devel zlib-devel 这个三个包需要 有时候,我们需要单独安装nginx,来处理大量的下载请求.单独在 ...