在Oracle环境下,通过存储过程实现:
判断表是否存在,如果不存在,就创建。
在新建表的同时建立对应的index。
又因为需要让主键自动增长,所以需要建立sequence和trigger。
sql脚本如下所示:
DECLARE tb_exists NUMBER ; BEGIN SELECT COUNT (*) INTO tb_exists FROM user_tables WHERE table_name = 'TB_USER' ; IF tb_exists = 0 THEN EXECUTE IMMEDIATE 'create table TB_USER( USER_ID NUMBER(30) PRIMARY KEY, USER_CODE VARCHAR2(100), USER_NAME VARCHAR2(100) )' ; EXECUTE IMMEDIATE 'create index idx_00000111111 on tb_user(user_code)'; EXECUTE IMMEDIATE 'create index idx_00000222222 on tb_user(user_name)'; EXECUTE IMMEDIATE 'CREATE SEQUENCE TB_USER_sequence INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE'; EXECUTE IMMEDIATE 'CREATE OR REPLACE TRIGGER TB_USER_trigger BEFORE INSERT ON TB_USER FOR EACH ROW WHEN (NEW.USER_ID IS NULL) BEGIN SELECT TB_USER_sequence.nextval INTO:NEW.USER_ID FROM dual ; END;'; END IF ; END ;
执行sql脚本成功。
相关推荐
只需要在excel里面写好表名列名,即可通过本EXCEL自动生成oracle table index sequence syn等表信息,注:只支持office 32位,系统多少位不影响。。
NULL 博文链接:https://snowelf.iteye.com/blog/575555
在Oracle数据库移植过程中,sequence可能失效,本资源可使失效的sequence重新恢复作用
Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍 很有用哦
NULL 博文链接:https://duqiangcise.iteye.com/blog/749438
oracle中sequence介绍及应用
教你如何使用oracle中的sequence,实现主键自动增长
以上代码完成了一个序列(sequence)的建立过程,名称为emp_sequence,范围是从1开始到无限大(无限大的程度是由你机器决定的),nocycle 是决定不循环,如果你设置了最大值那么你可以用cycle 会使seq到最大之后循环....
在ORACLE数据库中,序列(SEQUENCE)是使用非常频繁的一个数据库对象,但是有时候会遇到序列(SEQUECNE)跳号(skip sequence numbers)的情形,那么在哪些情形下会遇到跳号呢? 事务回滚引起的跳号 不管序列有...
oracle GoldenGate 同步oracle sequence的步骤
可以根据oracle数据库中存在的sequence,生成建立语句
本方法为使用SEQUENCE(序列) 例如有表temp_test结构为: create table TEMP_TEST ( id number, nm varchar(10), primary key(id) //id为主键,下面的方法把它设为自增字段 ) 1、建立...
Sql Server 数据库,插入操作时可以设置,自动编号。但是ORACLE 数据库,具有里一个东西SEQUENCE,在这儿介绍
答:在Oracle中虽然没有自增列的说法,但却可以通过触发器(trigger)和序列(sequence)来模式实现。 示例: 1、建立表 代码如下:create table user ( id number(6) not null, name varchar2(30) not ...
Oracle中没有sqlserver中那么方便的自增序列,如果想要达到sqlserver中那种效果,也不是很麻烦,需要创建一个自增序列SEQUENCE,然后建一个触发器即可。 CREATE SEQUENCE emp_sequence INCREMENT BY 1 — ...
Sequence是数据库系统按照一定规则自动增加的数字序列。这个序列一般作为代理主键(因为不会重复),没有其他任何...比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。
oracle 实现自增;使用sequence,和trigger实现表字段自增
在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序的地方。 1、Create Sequence (注释:你需要有CREATE SEQUENCE或CREATE ANY SEQUENCE权限) CREATE ...
4.9 怎样手工跟踪函数/存储过程执行情况 54 4.10 多种业务使用同一数据库如何分配回滚段 54 4.11 怎样倒出、倒入文本数据 54 4.11.1 倒出 54 4.11.2 倒入 55 4.12 如何更新当前数据库日志备份方式为archive 56 4.13 ...