`
fslingmo
  • 浏览: 26624 次
  • 性别: Icon_minigender_2
  • 来自: 厦门
社区版块
存档分类
最新评论

Oracle创建表ID字段关联序列

 
阅读更多

--创建测试表 
create   table   msct_test 

        user_id           number(10), 
        user_name       varchar2(32) 



--创建序列 
CREATE   SEQUENCE   mscs_test 
    INCREMENT   BY   1 
    START   WITH   0 
    MINVALUE   0 
    MAXVALUE   100000000 
    NOCYCLE 
    NOORDER 
    CACHE   20 


--创建触发器 
CREATE   OR   REPLACE   TRIGGER   insert_mscs_test 
BEFORE   INSERT   
ON   msct_test 
REFERENCING   NEW   AS   NEW   OLD   AS   OLD 
FOR   EACH   ROW 
begin 
        select   mscs_test.nextval   into   :new.user_id   from   dual; 
end; 


--测试数据 
insert   into   msct_test(user_name)   values( 'BuShi '); 
insert   into   msct_test(user_name)   values( 'KeLinDun '); 
insert   into   msct_test(user_name)   values( 'BillGates '); 

--检查结果 
SQL>   select   *   from   msct_test; 

      USER_ID   USER_NAME 
----------   -------------------------------- 
                  0   BuShi 
                  1   KeLinDun 
                  2   BillGates 

--注意 
--(1)如果你删除了其中一条或多条记录甚至所有记录,由于使用的是序列,已经使用过的ID将不会被重新使用。 

分享到:
评论

相关推荐

    oracle 创建id主键序列 脚本

    创建表时,我们可以将序列与主键约束关联,使得每次插入新行时自动获取序列的下一个值: ```sql CREATE TABLE table_name ( id NUMBER PRIMARY KEY DEFAULT seq_id.NEXTVAL, column2 VARCHAR2(50), column3 ...

    Oracle数据库表序列ID自增生成器

    当我们在`BEFORE INSERT`语句中定义触发器时,它会在每条新记录插入到表之前被调用,将序列的下一个值赋给新行的ID字段。 在实际应用中,"Oracle数据库表序列ID自增生成器"可能是一个工具或脚本,简化了上述过程,...

    oracle创建表,索引,表空间,触发器,schema用户,序列的Sql文

    以上是Oracle数据库中创建表、索引、表空间、触发器、用户和序列的基本操作。在实际应用中,根据业务需求可能还需要考虑其他因素,如分区、约束、存储过程、视图等。掌握这些基本操作对于理解和管理Oracle数据库至关...

    oracle创建表空间、表、主键、外键、序列

    假设有一个`DEPARTMENTS`表,我们可以在`EMPLOYEES`表上创建外键关联`DEPARTMENT`字段: ```sql ALTER TABLE EMPLOYEES ADD CONSTRAINT FK_EMP_DEP FOREIGN KEY (DEPARTMENT) REFERENCES DEPARTMENTS (DEPT_NAME); ...

    oracle设置主外键即主键序列自动增长

    这行命令为 `userinfo` 表添加了一个外键约束,将 `userinfo` 表中的 `groupinfo_id` 字段与 `groupinfo` 表中的 `groupinfo_id` 字段关联起来。 #### 二、创建序列和触发器实现主键自动增长 为了实现主键的自动...

    Oracle常用创建表.docx

    为`client`表创建一个序列,用于生成唯一的用户ID。 8. **插入`client`表数据**: 插入管理员和普通用户的记录,使用`seq_client`序列生成用户ID。 9. **`ORDER BY`**: 在查询时,`ORDER BY`用于对结果集进行...

    oracle自增长与临时表

    临时表在Oracle中用于在单个会话中存储临时数据,这些数据只对创建它们的会话可见,会话结束时,临时表及其数据都会被自动删除。 1. **创建临时表**:使用`CREATE GLOBAL TEMPORARY TABLE`语句创建临时表,例如: ...

    oracle序列主键自增长

    在Oracle数据库系统中,主键是表中的一个或多个字段,用于唯一标识每条记录,确保数据的完整性和一致性。为了实现主键自动增长,Oracle提供了序列(Sequences)这一特性,它能按照预设的规则(通常是递增)生成唯一...

    oracle创建表示例

    根据提供的文件信息,本文将详细解释Oracle数据库中的表创建、序列及触发器的使用方法,特别关注于如何实现主键自增长功能。 ### Oracle 创建表示例 #### 1. 创建学生表 (Student Table) 首先来看如何创建一个...

    oracle 主键自增 sequence

    为了使用 `Sequence` 为表中的主键字段赋值,可以通过以下步骤进行: 1. **创建表**: ```sql CREATE TABLE example( ID Number(4) NOT NULL PRIMARY KEY, NAME VARCHAR(25), PHONE VARCHAR(10), ADDRESS ...

    11.Oracle序列生成器1

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

    OSWorkflow基于JDBC(oracle)存储实现的表结构

    ENTRY_ID字段用于关联OS_WFENTRY表的ID字段,表示当前步骤所属的工作流实例。STEP_ID字段用于存储流程定义文件step标记的Id属性值。ACTION_ID字段用于存储当前步骤的动作Id,该字段初始值为null,表示当前步骤未执行...

    Oracle_基本建表语句

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的功能来创建、管理及操作各种数据库对象,如表、索引、视图等。本文将详细介绍Oracle的基本建表语句及相关操作。 首先,创建用户是数据库管理的基础...

    数据库(Oracle)命名规范

    本文将详细介绍Oracle数据库中的命名规范,包括表命名、字段命名、索引命名等各个方面。 #### 二、表命名规范 1. **命名原则**: - 命名应该直观明了,避免使用Oracle数据库的关键字。 - 使用全部大写字母进行...

    Oracle sequence 重置(失效恢复)

    它可以被用来作为表中某一列的自动增长字段,例如主键ID。Sequence的主要优点是简单易用且性能高效。 #### 二、Sequence失效的原因 1. **数据迁移:** 当数据从一个环境迁移到另一个环境时,如果只是简单地复制了...

    oracle_EBS_表结构

    - **BILL_SEQUENCE_ID (NUMBER)**:与主表中的BILL_SEQUENCE_ID关联,表示该组件属于哪个BOM。 - **OPERATION_SEQ_NUM (NUMBER)**:操作序列号,用于定义组装过程中各个组件的顺序。 - **COMPONENT_ITEM_ID (NUMBER)...

    建立oracle表空间

    - **示例**: 在回复表`REPLIES`中添加外键约束,关联文章表`ARTICLES`的`ID`字段:`ALTER TABLE replies ADD CONSTRAINT fk_artID FOREIGN KEY (artid) REFERENCES articles (id);` #### 七、总结 本文详细介绍了...

    (Enterprise Library)Oracle应用.doc

    例如,创建一个名为`Test_SQL`的序列,设置其最小值为1,增量为1,然后创建一个名为`Test_INSERT_trigger`的触发器,该触发器在插入新记录前为`ID`字段分配序列的下一个值。 在C#中,使用Enterprise Library访问...

    Oracel之序列管理.pdf

    创建序列后,可以将其与表中的字段关联,如ID字段,使用`.NEXTVAL`获取序列的下一个值: ```sql CREATE TABLE MYSEQ( ID NUMBER(10,0) NOT NULL, TEXT VARCHAR2(10) ); INSERT INTO MYSEQ VALUES(HR.SQ1.NEXTVAL...

Global site tag (gtag.js) - Google Analytics