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

在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
CREATE SEQUENCE ADVICE_ID_SEQ MINVALUE 1 NOMAXVALUE INCREMENT BY 1 START WITH 1 NOCACHE;

-- 为Insert操作创建触发器,无需在SQL语句里写NEXTVAL,名称为表名_INS_TRG
CREATE OR REPLACE TRIGGER ADVICE_INS_TRG BEFORE INSERT ON ADVICE FOR EACH ROW WHEN(NEW.ID IS NULL)
BEGIN
SELECT ADVICE_ID_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
END;

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索字段
自增id
oracle数据库字段自增、数据库自增字段、数据库添加自增字段、数据库字段值自增、oracle数据库主键自增,以便于您获取更多的相关知识。

时间: 2024-10-03 19:11:14

在oracle数据库里创建自增ID字段的步骤_oracle的相关文章

oracle数据库如何创建自增列的技巧教程

Oracle没有自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现. 先建一个测试表了: create table userlogin (      id   number(6) not null,      name   varchar2(30)   not null primary key ) tablespace users /   第一步:创建SEQUENCE create sequence userlogin_seq increment by 1 s

Oracle数据库中创建自增主键的实例教程_oracle

在设计数据库表的时候发现Oracle没有自增主键的设置,Google了解到Oracle本身并不支持自增主键,需要通过序列(Sequence)和触发器(Trigger)实现.创建表Student Create Table Student( id number(12) primary key, --通过序列和触发器实现id的自增 name varchar2(20) , age number(3) , sex number(1) ) 创建序列Sequence Create Sequence SEQ_S

深入内核:Oracle数据库里SELECT操作Hang解析

崔华,网名 dbsnake Oracle ACE Director,ACOUG 核心专家 编辑手记:感谢崔华授权我们独家转载其精品文章,也欢迎大家向"Oracle"社区投稿. 我们都知道在 Oracle 数据库里是"读不阻塞写,写不阻塞读",那么是否可以认为在正常情况下,select 操作是怎样都能执行,始终不会被 hang 住的呢?注意这里提到的是正常情况下,不包括那些由于 latch 被 hold 住.或者 bug 等相关异常导致的 select 操作 hang

oracle数据库里,子查询必须写在括号里吗

问题描述 oracle数据库里,子查询必须写在括号里吗 想问一下,子查询必须写在括号里吗,不写在括号里的查询不叫子查询是吗 解决方案 一般都 要将查询结果括号起来,要不语句就会报错了,语法方面的问题.子查询并不是说要写在括号里,而是查询时用到了另一个查询的结果 解决方案二: 可以这么理解,不放在括号里会报错 解决方案三: 写在2015第一天里的 解决方案四: 查询其实是调用了子查询出的值,我感觉就是这样的 解决方案五: 查询其实是调用了子查询出的值,我感觉就是这样的 解决方案六: 恩,不放括号里

sql server-如何将SQLServer的数据库迁移至ORACLE数据库里

问题描述 如何将SQLServer的数据库迁移至ORACLE数据库里 目前有一个SQL Server的数据库,我的任务是将这个数据库弄到Oracle数据库里.我使用过ORACLE sql Developer迁移数据, 但是在移植向导时报错java.lang.NullPointerExcetion错误! 解决方案 http://www.cnblogs.com/luoshengmen/p/3952155.html 解决方案二: 导出时报出了这个错误!!! 解决方案三: 最好的办法,通过编程,逐个表地

想用c#做一个小程序。要把oracle数据库里的某个表的昨日更新内容导出到xml中

问题描述 想用c#做一个小程序.要把oracle数据库里的某个表的昨日更新内容导出到xml中,现在还没点头绪,求大神指点 解决方案 解决方案二:数据库中的表增加两个字段"最后更新时间""最后更新人",然后就行了啊解决方案三:引用1楼xxoo2007的回复: 数据库中的表增加两个字段"最后更新时间""最后更新人",然后就行了啊 重要的不是数据库里面的操作.我是想用c#做个小程序,吧数据库里的表自动导成xml文件解决方案四:其实就

检查两个数据库里的表名、字段是否一致的一种方法

不知道大家有没有遇到过这种情况. 程序已经给客户安装上了,并且客户已经录入了一些信息,然后程序还需要作比较大的变动(修改功能.增加模块等),数据库就不可避免要做一些改动. 但是这时候已经不能把客户的数据库删掉,换上新的数据库了.只能用添表.添字段的方式了. 如果修改程序的时候做了详细的文档的话,那么就可以按照文档来修改数据库了,但是如果没有文档,或者文档记录的不全,或者修改完成之后想检查一下有没有"漏网之鱼".那么这时候应该怎么办呢?难道要一个一个的检查?! 我们可以使用两个视图和几个

oracle数据库用户创建、权限分配

oracle|创建|数据|数据库 1.数据库安装时的参数设定下面数据库所用的版本为ORACLE 9I (9.2.0),安装数据库时,数据库系统会创建一个数据库实例,其中:安装目录选为:\oracle,数据库名与数据库SID号都输入:ora9i ,其中的字符集必须选为:ZHS16GBK(否则以后进行跨平台操作时对中文的操作将比较困难).2.数据库用户的创建.权限的分配数据库安装完成后,有两个系统级的用户: 1.          system 默认密码为:manager 2.          s

Oracle数据库索引创建要做到三个适当

在Oracle数据库中,创建索引虽然比较简单.但是要合理的创建索引则比较困难了.笔者认为,在创 建索引时要做到三个适当,即在适当的表上.适当的列上创建适当数量的索引.虽然这可以通过一句话来 概括优化的索引的基本准则,但是要做到这一点的话,需要数据库管理员做出很大的努力.具体的来说, 要做到这个三个适当有如下几个要求. 一. 根据表的大小来创建索引. 虽然给表创建索引,可以提高查询的效率.但是数据库管理员需要注意的是,索引也需要一定的开销 的.为此并不是说给所有的表都创建索引,那么就可以提高数据库