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

在oracle中建立自动递增的主键列(转)

 
阅读更多

ORACLE设置主键是不会自动增加的,这个和SqlServer是不一样的,在oracle中所以必须用 序列 和 触发器 来完成主键的递增。


1建立数据表

Sql代码
  1. createtable Test_Increase(
  2. userid number(10) primarykey, /*建立主键*/
  3. username varchar2(20)
  4. );
  1. createtable Test_Increase(
  2. userid number(10) primarykey, /*建立主键*/
  3. username varchar2(20)
  4. );
create table Test_Increase(
            userid number(10) primary key,  /*建立主键*/
            username varchar2(20)
            );

 


2创建自动增长序列

Sql代码
  1. CREATESEQUENCE TestIncrease_Sequence
  2. INCREMENT BY 1 -- 每次加几个
  3. START WITH 1 -- 从1开始计数
  4. NOMAXVALUE -- 不设置最大值
  5. NOCYCLE -- 一直累加,不循环
  6. CACHE 10;
  1. CREATESEQUENCE TestIncrease_Sequence
  2. INCREMENT BY 1 -- 每次加几个
  3. START WITH 1 -- 从1开始计数
  4. NOMAXVALUE -- 不设置最大值
  5. NOCYCLE -- 一直累加,不循环
  6. CACHE 10;
CREATE SEQUENCE TestIncrease_Sequence
INCREMENT BY 1   -- 每次加几个  
      START WITH 1     -- 从1开始计数  
      NOMAXVALUE       -- 不设置最大值  
      NOCYCLE          -- 一直累加,不循环  
      CACHE 10; 

 


3创建触发器

Sql代码
  1. CREATETRIGGER Test_Increase BEFORE
  2. insertON Test_Increase FOR EACH ROW
  3. begin
  4. select TestIncrease_Sequence.nextval into:New.userid from dual;
  5. end;
  1. CREATETRIGGER Test_Increase BEFORE
  2. insertON Test_Increase FOR EACH ROW
  3. begin
  4. select TestIncrease_Sequence.nextval into:New.userid from dual;
  5. end;
CREATE TRIGGER Test_Increase BEFORE
insert ON   Test_Increase FOR EACH ROW
begin
select TestIncrease_Sequence.nextval into:New.userid from dual;

end;

 

 

使用方法

insert into Test_Increase (username) values ('人员'); 正确

insert into Test_Increasealues (' ','人员'); 正确

insert into Test_Increase values ('人员); 错误,没有足够的值

insert into Test_Increase (userid,username) values ('人员); 错误,没有足够的值

分享到:
评论

相关推荐

    oracle id 自动递增

    Oracle数据库中的ID自动递增是通过序列(Sequence)和触发器(Trigger)配合实现的,这对于需要自动填充主键或其他顺序标识字段的情况非常有用。序列是一个数据库对象,它按照预定的规则(如每次递增1)生成唯一的...

    创建oracle数据库中表的主键和自增

    在Oracle数据库中实现自增主键是一项常见但非常重要的功能。这不仅有助于确保数据的唯一性,还能简化开发过程中的某些环节,尤其是在需要自动增长的主键时。下面将详细介绍如何通过序列(Sequence)和触发器...

    Oracle中主键自增实例

    虽然Oracle没有内置的自动递增主键,但可以通过序列和触发器等方式实现。不过,应谨慎使用自增主键,因为它可能暴露表的数据结构。通常建议使用业务相关的唯一标识作为主键,这样既能保证唯一性,又能提高数据安全性...

    Oracle数据库创建表tuser设置主键自动增长

    在Oracle数据库中,创建一张包含自动增长主键的表是一项常见的需求。本文将详细介绍如何在Oracle环境中创建一个名为`tuser`的表,并实现其主键自动增长的功能。此外,还将介绍如何通过序列(sequence)来管理这个自动...

    oracle序列主键自增长

    为了实现主键自动增长,Oracle提供了序列(Sequences)这一特性,它能按照预设的规则(通常是递增)生成唯一的整数。本文将深入探讨Oracle序列主键自增长的工作原理、创建方法以及如何在表中应用。 **1. Oracle序列...

    oracle中设置自增主键参考

    在Oracle数据库中,自增主键是一种非常实用且常见的设计模式,它能够确保表中的每一条记录都拥有一个唯一的标识符,这对于数据的管理和查询非常重要。本文将详细介绍如何在Oracle中实现自增主键的功能。 #### 创建...

    ORACLE自增主键设置方法

    在Oracle数据库中,自增主键是一种常见的主键设计方式,它能够确保每条记录的唯一性,并且在插入新记录时自动递增,简化了数据管理流程。本文将详细介绍如何在Oracle中设置自增主键。 #### 一、创建序列(Sequence...

    oracle 创建id主键序列 脚本

    在Oracle数据库中,主键是表的一个重要组成部分,它用于唯一标识表中的每一行记录。在许多业务场景中,我们通常需要一个自增的序列来作为主键,以确保数据的唯一性和顺序性。Oracle数据库提供了序列(Sequences)...

    [数据库] Navicat for Oracle设置唯一性和递增序列实验1

    在本实验中,我们将探讨如何通过Navicat for Oracle设置唯一性和递增序列。 **唯一性约束(Unique Constraint)** 唯一性约束是数据库设计中的一个重要概念,它确保表中的某个字段或多个字段组合具有唯一性,即不...

    oracle 主键自增 sequence

    通过上面的例子,我们可以看到如何在 Oracle 中使用 `Sequence` 来实现主键自增的功能。这种方法非常适用于那些需要唯一标识符但又没有内置自增功能的情况。`Sequence` 的灵活性也使得开发者可以根据实际需求来定制...

    Oracle主键自增的办法

    在 Oracle 数据库中,与许多其他关系型数据库系统不同,它并没有内置的自动自增字段类型,例如 MySQL 的 `AUTO_INCREMENT` 或 SQL Server 的 `IDENTITY`。但是,Oracle 提供了序列(Sequences)和触发器(Triggers)...

    oracle中自动编码

    在Oracle数据库管理中,自动编码(Auto-Increment)是一种常见的功能需求,主要用于实现表中某一字段(通常为`主键`)的自动递增填充。这在处理大量数据记录时非常有用,能有效简化数据管理流程,并确保每条记录具有...

    oracle自动增长列

    在Oracle数据库中,实现自动增长列的功能主要依赖于`SEQUENCE`对象。通过创建一个序列(SEQUENCE),可以方便地为表中的某列自动生成唯一的值,这对于主键或者需要唯一标识符的场景非常有用。 #### 1. SEQUENCE概述...

    Oracle与Mysql自动增长列(id)的区别

    Oracle 和 MySQL 在处理自动增长列(通常用于主键ID)方面有着显著的差异。自动增长列主要用于确保每个新插入的行都有一个唯一的标识符。在MySQL中,这个过程相对直接,而在Oracle中则需要借助序列(sequence)来实现...

    oracle 自增长主键.doc

    Oracle数据库系统中,自增长主键是一种常见的设计模式,用于创建具有自动递增的唯一标识符。在Oracle中,我们通常使用序列(Sequence)来实现这个功能,而不是像其他数据库系统那样使用内置的自增机制。以下是对...

    Oracle数据库中主键的智能生成.pdf

    总的来说,Oracle数据库中智能生成主键通常涉及序列和触发器的结合使用,通过序列保证生成的主键值唯一,通过触发器在插入新行时自动设置主键值。在处理并发插入时,还需要考虑锁定机制以防止主键冲突。这种方案虽然...

    持久化类主键生成策略+例子

    2. **`GenerationType.IDENTITY`**:此策略适用于支持自动递增主键的数据库,如MySQL。主键值由数据库自动生成并返回给应用程序。 3. **`GenerationType.SEQUENCE`**:适用于支持序列的数据库,如Oracle。需要预先...

    Navicat Premium中Oracle创建主键自增的方法

    到此这篇关于Navicat Premium中Oracle创建主键自增的方法的文章就介绍到这了,更多相关Navicat Premium主键自增内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!

    oracle设定自增长列

    在Oracle数据库中,实现自增长列的功能是一种常见的需求,尤其在设计主键或者唯一标识符时。这通常用于确保每条记录都有一个唯一的、连续的编号。在给定的文件中,通过创建表、序列和触发器的方式实现了这一功能。...

Global site tag (gtag.js) - Google Analytics