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

在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;
(0)

相关推荐

  • oracle 实际值超过数据库某个字段指定长度报错解决

    ORA-01438: value larger than specified precision allowed for this column 实际值的长度大于了数据库里某个字段允许的最大长度导致的插入失败问题. 常见的场景是oracle sequence自动增长,系统用到一定的时候,sequence的值不断的增大,系统开始报错. 解决方法:更改字段的长度解决

  • 深入浅析mybatis oracle BLOB类型字段保存与读取

    一.BLOB字段 BLOB是指二进制大对象也就是英文Binary Large Object的所写,而CLOB是指大字符对象也就是英文Character Large Object的所写.其中BLOB是用来存储大量二进制数据的:CLOB用来存储大量文本数据.BLOB通常用来保存图片.文件等二进制类型的数据. 二.使用mybatis操作blob 1.表结构如下: create table BLOB_FIELD ( ID VARCHAR2(64 BYTE) not null, TAB_NAME VARC

  • oracle获取当前用户表、字段等详细信息SQL

    做个笔记,仅供参考 SELECT d.TABLE_NAME tbName,//表名 COALESCE(t.COMMENTS, ' ') tbDesc, //表注释 a.COLUMN_NAME columnName, //字段名 a.DATA_TYPE columnType, //字段类型 a.DATA_LENGTH width, //字段长度 a.DATA_SCALE precision,//字段小数位 decode(a.NULLABLE,'Y','0','1') notNull,//是否允许空

  • Oracle中判断字段是否为数字

    在我们平常的开发中可能会遇到这样的问题,就是判断某一列是否全部由数字组成,我们都知道oracle并没有给我们提供这样一个现成的函数,那么根据我的经验我总结了两个行之有效的方法(列名:column,表名:table): 1.使用trim+translate函数: 复制代码 代码如下: select * from table where trim(translate(column,'0123456789',' ')) is NULL; 这里要注意的是:translate函数的第三个参数是一个空格,不

  • Oracle 查询表信息获取表字段及字段注释

    获取表字段: select * from user_tab_columns where Table_Name='用户表' order by column_name 获取表注释: select * from user_tab_comments where Table_Name='用户表' order by Table_Name 获取字段注释: select * from user_col_comments where Table_Name='用户表' order by column_name /*

  • Oracle删除字段中的空格、回车及指定字符的实例代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: create or replace procedure PROC_test is --Description:删除字段中的指定字符(回车chr(13).换行chr(10)) --By LiChao --Date:2016-03-01 colname varchar(20); --列名 cnt number; --包含换行符的列的行数 v_sql varchar(2000); --动态SQL变量 begin --读取表中的列 for col i

  • oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert

    最近做项目遇到一个挺纠结的问题,由于业务的关系,DB的数据表无法确定,在使用过程中字段可能会增加,这样在insert时给我造成了很大的困扰. 先来看一下最终我是怎么实现的: <insert id="batchInsertLine" parameterType="HashMap"> <![CDATA[ INSERT INTO tg_fcst_lines(${lineColumn}) select result.*,sq_fcst_lines.next

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

    在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) )TABLESP

  • 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_

  • oracle数据库表实现自增主键的方法实例

    目录 一.前言 二.实现主键自动增长 1.创建表格 2.创建自增序列 3.创建触发器 4.测试新增语句 总结 一.前言 几天建表需要用到自增主键,于是使用序列(sequence)和触发器(trigger)来实现主键自增,在网上查了一些知识,顺便记录下: 二.实现主键自动增长 1.创建表格 CREATE TABLE "APP_COMM_T" ( "ID" NUMBER, "BASE_KEY" VARCHAR2(50 BYTE), "BAS

  • LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2)首先要打开监听器命令如下:lsnrctl start,然后sqlplus /nolog ,然后conn /as sysdba,然后startup(这一部分命令是用来打开oracle数据库) 3)查看我们常规将用户表空间放置的位置:执行如下sql: SQL> select

  • Oracle数据库如何创建第一张表

    对于Oracle数据库的使用,创建一张符合自己需求的表是至关重要的,下面就让我们进行创建第一张属于自己的表 创建表时有两种种方式: (1)在cmd里边更具需要进行创建 (2)在sql developer中进行创建,而对于在可视化界面sqldeveloper中创建时,也有两种方式,即一种是使用命令直接进行创建,另外一种是使用可视化界面按钮进行点击创建 下面就是创建的具体过程: (1)首先我们进行数据的连接,在SQLdeveloper中进行操作,在使用sqldeveloper时需要下载sqldeve

  • Oracle 数据库中创建合理的数据库索引

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

  • 解析如何查看Oracle数据库中某张表的字段个数

    Oracle中查询某个表的总字段数,要用SQL语句,或者在PL/SQL里面 复制代码 代码如下: select count(column_name) from user_tab_columns where table_name='T_B_AUDITOR' 能够查出来指定的那张表的字段数.下面是通过大致查看:select   tname,count(*)   from   col   group   by   tname; 复制代码 代码如下: 64 T_A_BOOKSTAGEINFO 465 T

  • java连接Oracle数据库的方法解析

    Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id number(11) not null primary key, stu_name varchar(16) not null, gender number(11) default null, age number(11) default null, address varchar(128) default null ); 2.向表中增添一些数据

  • MySQL的自增ID(主键) 用完了的解决方法

    在 MySQL 中用很多类型的自增 ID,每个自增 ID 都设置了初始值.一般情况下初始值都是从 0 开始,然后按照一定的步长增加(一般是自增 1).一般情况下,我们都是用int(11)来作为数据表的自增 ID,在 MySQL 中只要定义了这个数的字节长度,那么就会有上限. MySQL的自增ID(主键) 用完了,怎么办? 如果用 int unsigned (int,4个字节 ), 我们可以算下最大当前声明的自增ID最大是多少,由于这里定义的是 int unsigned,所以最大可以达到2的32幂

  • 使用zabbix监控oracle数据库的方法详解

    一.概述 zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix+python监控oracle数据库. 二.环境介绍 以下是我安装的环境,实际部署时并不需要跟我的环境一样. 1. 监控机 Redhat Linux 6.5 + Zabbix server 3.4.10 + Python 2.6.6 (操作系统自带) + Oracle Client 11.2 (x86_64) 2. 被监控机 Oracle 11.2.0.4 三.选择监控方式 zabbix

随机推荐