oracle中建立字段自增长相对于sql server和mysql还是有点小复杂的,这不为了在oracle中建立字段自增长花了我一天的时间,由于不知道如何建立所以百度,但是百度出来之后复制代码,在其创建触发器的时候老出错啊。直到今天由于偶然的原因才发现错误所在,同时也让我深刻明白:网上那些转来转来的人们啊,建议在转别人的东西之前最好是自己能检验一下啊,不然真坑爹啊!下面开始:
--创建表
CREATE TABLE example(
ID Number(4) NOT NULL PRIMARY KEY,
NAME VARCHAR(25),
PHONE VARCHAR(10),
ADDRESS VARCHAR(50));
--创建序列
CREATE SEQUENCE exam_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE -- 不建缓冲区
--创建触发器
CREATE OR REPLACE TRIGGER exam_trg BEFORE
INSERT ON example FOR EACH ROW WHEN (new.id is null)
begin
select emp_sequence.nextval into :new.id from dual;--请注意这里的冒号跟new之间是没有空格的,我从网上复制过来的就是因为中间多了一个空格啊!坑爹啊
end;
--插入数据
INSERT INTO example(Name,phone,address) Values('Riyun','56498543','zhejiang');
好了,至此在oracle中建立字段自增长已经完毕!
补充oracle中“:”的含义:
:就是个指针,就像c语言中的指针一样
:new 代表 数据改变后的新值,相对应的有 :old 原值
:= 代表 赋值
分享到:
相关推荐
oracle触发器实现主键自动增长操作
完成Java编程过程中数据存储序号自增长。
oracle设置主键自动增长 首先,你要有一张表! 然后,你需要一个自定义的sequence 以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle...
mysql等其他数据库中有随着记录的插入而表ID自动增长的功能,而oracle却没有这样的功能,我们有以下两种方式可以解决字段自增长的功能。 因为两种方式都需要通过创建序列来实现,这里先给出序列的创建方式。 ...
主要通过两种方式实现oracle数据库字段自增长,第一种方式是序列+触发器,第二种方式序列+显示调用序列,需要的朋友可以参考下
介绍了两种oracle创建字段自增长的实现方式,一是序列+触发器,二是序列+显示调用序列,需要的朋友可以参考下
Oracle使用序列创建自增字段,自增长列。
您可能感兴趣的文章:SQL Server设置主键自增长列(使用sql语句实现)oracle中的ID号实现自增长的方法mysql修改自增长主键int类型为char类型示例自增长键列统计信息的处理方法实现oracle数据库字段自增长(两种方式)
常见的场景是oracle sequence自动增长,系统用到一定的时候,sequence的值不断的增大,系统开始报错。 解决方法:更改字段的长度解决 您可能感兴趣的文章:Oracle+Mybatis的foreach insert批量插入报错的快速解决...
oracle数据库id为uuid类型时自动生成id的工具类,不再依赖sequence自增长
禁止undo tablespace自动增长 alter database datafile 'full_path\undotbs01.dbf' autoextend off; 2.-- 创建一个新的小空间的undo tablespace create undo tablespace undotBS2 datafile 'full_path\UNDOTBS02....
下面用一个例子来说明如何实现oracle中字段的自增。 首先,创建一个表格SuperAmin 代码如下: create table SuperAdmin( ID number(11) primary key, Name varchar(11) not null unique, Password varchar(11) not ...
1.组函数用法规则 mysql中组函数在select语句中...ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。CREATE SEQUENCE序列号的名称(最好是表名+序列号标记)I
ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup ...
Oracle没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。 CREATE SEQUENCE 序列号的名称 (最好是表名 序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 ...
Oracle数据库与MySQL数据库的区别是本文我们主要介绍的内容,希望能够对您有所帮助。 1.组函数用法规则 mysql中组函数在select语句中可以随意使用,但在oracle中如果...ORACLE没有自动增长的数据类型,需要建立一
§9.10 Oracle数据库增长的规划 111 §9.10.1 不同增长表的配置 111 §9.10.2 对增长表进行规划和分析 112 第10章 数据库结构设计要点 113 §10.1 分析阶段的对表的理解 113 §10.2 正确的主键字段的选择 113 §10.3...