Oracle中创建自增字段方法

oracle没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现。

下面给大家讲个例子:

1、在Oracle中创建一个表:

1、创建一个表
create table t_client (id number(4) primary key,
pid number(4) not null,
name varchar2(30) not null,
client_id varchar2(10),
client_level char(3),
bank_acct_no varchar2(30),
contact_tel  varchar2(30),
address    varchar2(30),
zip_code varchar2(10),
is_leaf char(1) default ‘y‘ check (is_leaf in(‘y‘,‘n‘)),
is_client char(1) default ‘n‘ check (is_client in(‘y‘,‘n‘)
)); 

2、假设关键字段为id,建一个序列,代码为:

create sequence seq_t_client_id
minvalue 1
maxvalue 99999999
start with 1
increment by 1
nocache
order;

3、建解发器代码为:

CREATE OR REPLACE TRIGGER trg_t_client_id
BEFORE INSERT ON Users
FOR EACH ROW
BEGIN
SELECT  seq_t_client_id.nextval INTO :new.id FROM dual;
END;
时间: 2024-08-10 17:03:28

Oracle中创建自增字段方法的相关文章

Oracle中创建自增字段(序列sequence)方法

oracle没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现. 下面给大家讲个例子: 1.在Oracle中创建一个表: 1.创建一个表 create table t_client (id number(4) primary key, pid number(4) not null, name varchar2(30) not null, client_id varchar2(10), client_level char(3), bank_acc

Oracle创建自增字段方法-ORACLE SEQUENCE的简介

曾经最头疼的就是对表插入数据的时候,有主键问题. 由于主键不可以反复,所以得用函数自己定义一个规则生成不反复的值赋值给主键. 如今发现oracle有sequence就不用那么麻烦了. 转自:http://zhoufoxcn.blog.51cto.com/792419/166418/ 先如果有这么一个表: create table S_Depart    ( DepartId                         INT                                  

Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍

引用自 :http://www.2cto.com/database/201307/224836.html 先假设有这么一个表: create table S_Depart ( DepartId INT not null, DepartName NVARCHAR2( 40) not null, DepartOrder INT default 0, constraint PK_S_DEPART primary key (DepartId) ); 在oracle中sequence就是所谓的序列号,每次

在oracle中创建自动增长字段

参考http://www.cnblogs.com/jerrmy/archive/2013/03/13/2958352.html oracle在创建表时和其他的数据库有点不一样,如SQL SERVER可以在int类型的字段后加上identity(1,1),该字段就会从1开始,按照+1的方式自增,将这个字段设置为主键,有利于我们进行数据的插入操作.MySql中可以使用"auto_increment"即可.但是oracle有点麻烦,需要使用序列和触发器达到目的. 首先我们创建一个员工表. c

oracle创建自增字段方法

1.创建表 create table test ( id NUMBER, messageid VARCHAR2(32) ); 2.创建序列 create sequence test_id minvalue 1 maxvalue 9999999 start with 1 increment by 1 cache 50; 3.创建触发器 CREATE OR REPLACE TRIGGER "test_auto_id" BEFORE INSERT ON recv_msg REFERENCIN

如何在SQLite中创建自增字段

SQLite 简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加. 这里是详细的答案: 从 SQLite 的 2.3.4 版本开始,如果你将一个表中的一个字段声明为 INTEGER PRIMARY KEY,那么无论你何时向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大值大 1 的整数:如果表为空,那么将被更换为 1.比如,假设你有这样的一张数据表: CREATE TABLE t1(            a INTEGE

mongoose 创建自增字段方法

first: create counter collection in mongodb:> db.counters.insert({_id:"entityId",seq:0})WriteResult({ "nInserted" : 1 }) then put below in a model.js: var CounterSchema = Schema({ _id: {type: String, required: true}, seq: { type: Nu

oracle中设置自增主键

首先,你要有一张表!CREATE TABLE example(ID Number(4) NOT NULL PRIMARY KEY,NAME VARCHAR(25),PHONE VARCHAR(10),ADDRESS VARCHAR(50));如果对于以上的建表语句还有疑问的话,建议您不要继续了!有那么些时间您还不如去看看金庸读读琼瑶!然后,你需要一个自定义的sequenceCREATE SEQUENCE emp_sequenceINCREMENT BY 1 -- 每次加几个START WITH

sqlite3自增key设定(创建自增字段)

在用sqlite设计表时,每个表都有一个自己的整形id值作为主键,其实可以不指定这 么一个id值,sqlite内部本来就会为每个表加上一个 rowid,这个rowid可以当成一个隐含的字段使用,但是由sqlite引擎来维护的,在 3.0以前rowid是32位的整数,3.0以后是 64位的整数,为什么不直接使用这个内部的rowid作为每个表的id主键呢. 相关的文档在这里:?http://www.sqlite.org/autoinc.html?http://www.sqlite.org/faq.h