oracle创建自增ID 表以及触发器的使用

1.创建一个普通的用户表

create table demo
(
  id int not null,
  name varchar(10),
  pwd varchar(10) default ‘123‘,
  primary key(id)
)

2.创建一个序列Sequence

 create sequence seq_demo
     increment by 1  --自增 1
     start with 1  --开始值 1
     nomaxvalue   --无最大值
     minvalue 1  --最小值 1
    nocycle;   --不循环

3.创建一个触发器

CREATE OR REPLACE TRIGGER MY_TGR BEFORE INSERT ON demo FOR EACH ROW--对表的每一行触发器执行一次DECLARE NEXT_ID NUMBER;BEGIN SELECT seq_demo.NEXTVAL INTO NEXT_ID FROM DUAL; :NEW.ID := NEXT_ID; --:NEW表示新插入的那条记录END;

4.插入数据进行测试

insert into demo (name,pwd) values (‘111‘,‘222‘)
时间: 2024-08-15 01:43:46

oracle创建自增ID 表以及触发器的使用的相关文章

Oracle创建自增ID

先创建序列sequence create sequence S_User minvalue 1 nomaxvalue  -- 或 maxvalue 999 start with 1 increment by 1 cache 20; -- 或 nocache 参考: oracle 序列中cache 有什么用途 然后创建触发器 create or replace trigger trg_user before insert on T_USER for each row begin select it

在oracle数据库里创建自增ID字段的步骤

CREATE TABLE ADVICE ( ID INT NOT NULL, ACTIVE INT DEFAULT 1 NOT NULL, TYPE INT NOT NULL, MSG VARCHAR2(512) NOT NULL, ADVICE VARCHAR2(4000) NOT NULL, PRIMARY KEY(ID), CONSTRAINT ADVICE_UNI UNIQUE(TYPE,MSG) )TABLESPACE MYDB; --创建自增ID,名称为:表名_字段名_SEQ CRE

oracle实现自增id

--oracle实现自增id --创建一张T_StudentInfo表 create table T_StudentInfo ( "id" integer not null primary key, xsName nvarchar2(120) not null, xsAge integer not null, Mobile varchar(12), Email varchar(50), Address nvarchar2(300) ); --创建一个序列,序列名字叫SEQ_Studen

oracle + mybatis 自增 id的的配置

大过年的还要敲代码,想想也是醉人.今天忙着赶毕设,在做功能测试的时候发现id的值一直为0,一看就知道id的值没有自增,一直默认为0了.于是去百度了一番,默默调试,找到下面这段代码: <selectKey keyProperty="id" resultType="int" order="BEFORE"> SELECT SEQ_RESULT_ID.nextval as id FROM DUAL </selectKey> 这段代

Oracle 创建自增列

类似SqlServer中的标识列   identity,Oracle实现同样的效果有点小复杂额,如下: 1 --1.创建表 2 create table Student( 3 ID integer not null primary key, 4 Name varchar2(40) not null, 5 Sex integer, 6 Address varchar2(100) 7 ) 8 tablespace MyTest_Data;--指明表空间 9 10 --2.创建序列 11 create

Oracle实现自增方式:序列+触发器

Oracle不能像MySQL那样设置主键自增,Oracle用 <序列+触发器>的方式使数据表的一列或多列实现自增 序列sequence+触发器trigger:实现数据表S_DEPART中的主键的自增 PL/SQL图示: 1.创建数据表,如下,DEPARTID是主键 2.创建序列Sequences 在oracle中sequence就是序列,每次取的时候它会自动增加. sequence与表没有关系,也就是,其他表都可以引用这个sequence INCREMENT BY  -- 每次加几个 STAR

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

http://blog.csdn.net/zhoufoxcn/article/details/1762351先假设有这么一个表: create table S_Depart  (    DepartId             INT                             not null,    DepartName           NVARCHAR2(40)                   not null,    DepartOrder          INT 

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

Oracle创建、管理撤销表空间

撤销管理模式: 用户通过设定撤销管理模式(undo mode)就可以灵活地选择使用手动撤销管理(manual undo management)或自动撤销管理(automatic undo management).数据库系统既可以运行在手动撤销管理模式下,也可以运行于自动撤销管理模式下.在手动撤销管理模式下,撤销空间通过回滚段(rollback segment)管理.在自动撤销管理模式下,撤销空间通过撤销表空间(undo tablespace)管理.如需使用自动撤销管理模式,数据库管理员只需为每个