`
linwei_211
  • 浏览: 191704 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

sequence避免主键唯一约束

阅读更多
---为某个新加的表创建序列
create sequence S_ESP_N
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache;

---使用序列
SELECT empseq.currval FROM DUAL;
SELECT empseq.Nextval FROM DUAL;

---为用户授予创建序列的权限
GRANT CREATE ANY sequence TO OAIS

---使用存储过程为已存在数据ESP_N的表创建序列
create or replace procedure createS(a out number) is
       cursor structureIdsCur is SELECT distinct(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE

(table_name,'_CHILDREN',''),'ESP_',''),'_PARENT',''),'_RULE_CONTENT',''),'_RULE_PACKAGE',''),'_TAMP','')) as id FROM USER_TABLES WHERE TABLE_NAME LIKE 'ESP_%' ;
       oneId structureIdsCur%rowtype ;
       tablename varchar2(100);
       str varchar2(100);
       strsql varchar2(500);
       stat number ;
       cou number ;
begin
       for oneId in structureIdsCur loop
           tablename:= 'esp_' || oneId.id ;
           str:= 'select count(*) as int from tab where tname=upper('''|| tablename||''')' ;
           dbms_output.put_line(str);
           execute immediate str into cou ;
           if cou>0 then
                   begin
                   strsql:= 'select nvl(max(id),1) from ' || tablename ;
                   --dbms_output.put_line(strsql);
                   execute immediate strsql into stat ;
                   strsql:='create sequence seq_' || tablename || ' minvalue 1 maxvalue 999999999999999999999999999 start with '|| stat ||' increment by 1 nocache';
                   --dbms_output.put_line(strsql);
                   execute immediate strsql;       
                   end;
            end if ;      
       end loop ;

end createS;

分享到:
评论

相关推荐

    标识码唯一性检查

    标识码是用来唯一识别数据库中每一项记录的关键字段,确保每条记录都有一个独特的标识,避免数据冗余和一致性问题。"标识码唯一性检查"工具正是针对这一需求而设计的,专门用于检查mdb格式的数据库中标识码的唯一性...

    oracle 主键自增相关命令

    这里`id`字段被定义为整数类型,并且设置了`PRIMARY KEY`约束,确保每一行的`id`值都是唯一的。 2. **创建自增序列**: Oracle数据库并不直接支持像MySQL中的`AUTO_INCREMENT`功能,但可以通过创建序列来实现类似...

    京东金融数据库开发管理规范-SEQUENCE

    - 对于使用循环模式的序列,如果该序列值用于主键或其上有唯一性约束,则需采取措施避免字段值重复。 - 所有序列都应使用`cache`选项,默认设置为200。 - `CACHE SIZE`的设置规则为:`MAX(200, 可支撑5分钟业务...

    oracle建表总结.pdf

    - 约束分为列级约束和表级约束,主要有6种:`NOT NULL`(非空约束)、`DEFAULT`(默认值约束)、`UNIQUE`(唯一性约束)、`PRIMARY KEY`(主键约束)、`FOREIGN KEY`(外键约束)和`CHECK`(检查约束)。...

    oracle数据库

    通过以上概述,我们了解了Oracle数据库的基本管理和核心概念,包括SQL\*PLUS的常用命令、数据定义语言(DDL)的使用、表的约束及主键的设计原则,为深入学习Oracle数据库管理打下了坚实的基础。

    11.Oracle序列生成器1

    2. 序列与主键:序列通常与主键字段关联,但并不意味着序列就是主键,主键还需要满足其他约束,如唯一性、非空性等。 3. 序列的优化:合理设置`cache`大小可以提高性能,但过大可能导致序列值的浪费。同时,`nocache...

    oracle建表总结.docx

    2. 只能包含AZ、az、09、_(下划线)、$和#,但推荐避免使用$和#。 3. 同一Oracle服务器用户下的对象名不能重复。 4. 名称不能是Oracle的保留字。 5. 名称在数据库内部是不区分大小写的,但在SQL语句中保持大小写敏感...

    PLSQL Developer使用入门技术文档

    在PLSQL Developer的SQL窗口中,使用`CREATE TABLE`语句定义表结构,包括指定表名、列名、数据类型以及约束条件,如主键。主键是一列或多列,用于唯一标识表中的每一行,通常通过`PRIMARY KEY`关键字来声明。 接着...

    hibernate注解说明文档

    - `unique`:可选项,指定该列是否设置唯一约束,默认为 `false`。 - `nullable`:可选项,指定该列是否允许为空,默认为 `false`。 - `insertable`:可选项,指定该列是否包含在插入语句中,默认为 `true`。 - ...

    Hibernate4实战之Hibernate4注解零配置

    - `unique`:是否设置唯一约束,默认为false。 - `nullable`:是否允许为空,默认为true。 - `insertable`和`updatable`:是否包含在INSERT和UPDATE语句中,默认为true。 - `columnDefinition`:SQL DDL定义,...

    数据库知识整理,很详细完整,适合入门或者复习。

    - **定义**: 主键约束是用于唯一标识表中的每一行记录的字段或字段组合。主键必须是唯一的,并且不允许为空。 - **示例代码**: ```sql CREATE TABLE employ2 ( id NUMBER PRIMARY KEY, name VARCHAR(30), ...

    Hibernate4实战资料

    它提供了多个可选参数,如name用于指定列名,unique用于设置唯一性约束,nullable定义是否允许空值,insertable和updatable控制列在INSERT和UPDATE语句中的行为,columnDefinition允许自定义SQL DDL片段,table指定...

    数据库5关系数据库完整性实验.doc

    - **实体完整性**:确保每张表中的主键字段都有唯一且非空的值,例如在实验中的`student`表,`sno`字段作为主键,通过`create sequence`生成唯一的序列号,保证了实体完整性。 - **参照完整性**:确保引用的外键...

    Oracle数据库设计优化指导

    每个表都应有主键,作为记录的唯一标识,建议使用NUMBER类型并配合Sequence生成主键值,以保证主键的连续性和唯一性。外键用于维护数据的一致性和完整性,关联不同表之间的关系。在设计时,要确保外键约束的有效性,...

    powerdesigner使用建议

    例如,数据表“房屋整合面积”的主键可命名为“房屋整合面积编号”,对应的 Sequence 为“SEQ_房屋整合面积”。在使用 Sequence 时,需确保在数据表的 Extended Dependencies 中设置引用关系,以确保模型的一致性。 ...

    hibernate说明文档

    - `unique`: 如果为`true`,则表示该字段具有唯一约束,防止重复数据。 - `index`: 给一个或多个字段建立索引,加速查询速度。 - `unique-key`: 为多个字段设定唯一约束,确保复合唯一性。 - `foreign-key`: 为...

    (完整word版)数据库设计规范.doc

    2.2 数据完整性策略:确保数据的准确性、一致性和完整性,可以通过定义约束(如主键、外键、唯一性约束等)来实现。此外,应使用事务管理来保证数据操作的原子性和一致性。 2.3 规范化设计与性能之间的权衡策略:...

    Oracle知识整理.doc

    4. **序列**:序列生成唯一的数字,常用于主键或唯一键。创建序列用`CREATE SEQUENCE`,获取序列值用`NEXTVAL`或`CURRVAL`,修改和删除序列也有对应的语句。 5. **同义词**:同义词是给数据库对象的别名,方便记忆...

    公司外部oracle培训PPT第二章

    约束类型包括NOT NULL(不允许为空)、UNIQUE(唯一性)、PRIMARY KEY(主键)、FOREIGN KEY(外键)和CHECK(检查条件)。这些约束在数据输入时进行验证,防止无效数据的录入。 视图是数据库的虚拟表,它是基于一...

Global site tag (gtag.js) - Google Analytics