在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;
相关推荐
-
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
-
深入浅析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 实际值超过数据库某个字段指定长度报错解决
ORA-01438: value larger than specified precision allowed for this column 实际值的长度大于了数据库里某个字段允许的最大长度导致的插入失败问题. 常见的场景是oracle sequence自动增长,系统用到一定的时候,sequence的值不断的增大,系统开始报错. 解决方法:更改字段的长度解决
-
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+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert
最近做项目遇到一个挺纠结的问题,由于业务的关系,DB的数据表无法确定,在使用过程中字段可能会增加,这样在insert时给我造成了很大的困扰. 先来看一下最终我是怎么实现的: <insert id="batchInsertLine" parameterType="HashMap"> <