一、创建一张工作表
例:

create table tv(ID NUMBER primary key,TVNAME VARCHAR(16),ISPASS NUMBER);
 
二、先创建一个序列
create sequence [序列名]
minvalue 1 —— 最小值
nomaxvalue —— 不设置最大值
start with 1 —— 从1开始计数
increment by 1 —— 每次加1个
nocycle —— 一直累加,不循环
nocache; —— 不建缓冲区
 
例:

create sequence seq_tv start with 1 increment by 1;
 
三、创建触发器
CREATE OR REPLACE TRIGGER [触发器名] BEFORE
INSERT ON [表名] FOR EACH ROW WHEN
(new.id is null) --只有在id为空时,启动该触发器生成id号
begin
select [序列名].nextval into :new.id from dual;
end;
 
例:

CREATE OR REPLACE TRIGGER tiger_TV BEFORE INSERT ON TV FOR EACH ROW WHEN (new.id is null or NEW.ID = 0)
begin select seq_tv .nextval into :new.id from dual;end;
备注:into :new.id之间的冒号需要挨着new.id,不然不生效
 
四、插入数据时不用插入ID,只插入其他数据,会自动增加ID列的值
例:

insert into TV (TVNAME,ISPASS) values ('1999',1);
 
 
备注:以上方法试了可行,只需要把以上四个例子依次在PL/SQL中执行即可。网上有说在EntityFramework使用自增时,在需要自增的字段上增加[DatabaseGenerated(DatabaseGeneratedOption.Identity)],我试过了不行,在Model1.edmx模型上选择表中的ID,设置ID的属性StoreGeneratedPattern为Identity,试了多次,依旧不行,有试过此方法的希望说明一下注意事项!谢谢!
 

Oracle使用序列和触发器设置自增字段的更多相关文章

  1. Oracle 使用序列、触发器实现自增

    之前项目开发多用mysql,对于id自增长设置,只需要简单修改列属性便好.最近改用ORACLE,头大一圈.ORACLE的相关操作,多用脚本.想短平快,难.最终用sql developer通过UI进行修 ...

  2. mysql 原有的主键情况下设置自增字段

    mysql 的自增字段只能是主键,如果原表已经有主键,需要设置自增字段应该怎么做呢? 1.alter table bu_staff  drop primary key;  先删除表的主键  id为原表 ...

  3. Oracle中用序列和触发器实现ID自增

    在设计数据库的时候,Oracle中没有类似SQL Server中系统自动分配ID作为主键的功能,这时Oracle可以通过“序列”和“触发器”来实现ID自动增加的功能. 1.创建序列Sequence c ...

  4. MySQL设置自增字段

    1.MySQL每张表只能有1个自增字段,这个自增字段即可作为主键,也可用作非主键使用,但是请注意将自增字段当做非主键使用时必须为其添加唯一索引,否则系统将会报错 )将自动增长字段设置为主键 CREAT ...

  5. oracle 利用序列与触发器实现列自增

    实现步骤:先创建序列,后创建触发器 1.创建序列 create sequence 序列名 increment start maxvalue ; 2.创建触发器 create or replace tr ...

  6. Mysql设置自增字段的方法

    #int : 字段类型 alter table 表名 modify 字段名 int auto_increment primary key

  7. mysql 约束条件 auto_increment 自动增长 创建表时设置自增字段

    auto_increment mysql) )auto_increment; Query OK, rows affected (0.01 sec) mysql> show create tabl ...

  8. oracle入坑日记<六>自增列创建和清除(含序列和触发器的基础用法)

    0   前言 用过 SQLserver 和 MySQL 的自增列(auto_increment),然而 Oracle 在建表设置列时却没有自增列. 查阅资料后发现 Oracle 的自增列需要手动编写. ...

  9. Oracle通过序列+触发器实现主键自增

    接触oracle没多久,在建表的时候发现还不会如何设置主键自动增长.和mysql的设置为AUTO_INCREMENT属性相比,要复杂很多,所以现在记录起来. 我使用的是序列+触发器的方式. 现在已经创 ...

  10. oracle数据库中的表设置主键自增

    oracle中没有自增字段,可通过序列+触发器间接实现,cmd中sqlplus登录,直接运行即可.一般要经过一下几步: 1建立数据表 create table Test_Increase(       ...

随机推荐

  1. OceanBase时序数据库CeresDB正式商用 为用户提供安全可靠的数据存储管理服务

    简介: OceanBase完成OLAP和OLTP双重能力并行后,向数据管理领域多模方向迈出第一步. 近日,在数据库OceanBase3.0峰会上,OceanBase CEO杨冰宣布首个时序数据库产品C ...

  2. WPF 使用 Silk 的 Direct2D 入门

    在上一篇博客的基础上,使用 dotnet 基金会新开源的 Silk.NET 库,让 Silk.NET 创建的 DX 设备和 WPF 对接渲染.接下来本文将告诉大家如何使用 Silk.NET 提供的 D ...

  3. 2018-2-13-win10-uwp-从StorageFile获取文件大小

    title author date CreateTime categories win10 uwp 从StorageFile获取文件大小 lindexi 2018-2-13 17:23:3 +0800 ...

  4. Multisim14.0安装步骤

    免责声明:以下图片资源来源于Internet,作搜集学习之用.   此处,若只用到multisim仿真,可以只选择multisim 14.0 下面的education edition.

  5. 19、python 脚本

    1.python 安装及配置 下载地址 python2 和 python3 共存安装 2.python 可视化 import turtle turtle.pensize(2) #画一个小圆 turtl ...

  6. 如何在Ubuntu 20.04上安装Pyenv 管理多版本Python

    目录 ubuntu安装pyenv 管理多版本Python 参考文档: 安装pyenv: pyenv 命令列表 pycharm配置 ubuntu安装pyenv 管理多版本Python 参考文档: htt ...

  7. 用 Certbot-auto 在 letsencrypt.org申请免费 SSL 证书实现 HTTPS

    参考帖子 https://www.cnblogs.com/lzpong/p/6433189.html https://www.cnblogs.com/756623607-zhang/p/1163850 ...

  8. 🔥🔥v1.9.2-httpsok快速申请免费谷歌SSL证书

    v1.9.2-httpsok快速申请免费谷歌SSL证书 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具,专为 Nginx .OpenResty 服务器设计.已服务众多中小企业,稳定. ...

  9. Java面试题:Spring中的循环依赖,给程序员带来的心理阴影

    循环依赖通常发生在两个或多个Spring Bean之间,它们通过构造器.字段(使用@Autowired)或setter方法相互依赖,从而形成一个闭环.下面是一个使用字段注入(即使用@Autowired ...

  10. Kubernetes Pod调度:从基础到高级实战技巧

    本文深入探讨了Kubernetes中的Pod调度机制,包括基础概念.高级调度技术和实际案例分析.文章详细介绍了Pod调度策略.Taints和Tolerations.节点亲和性,以及如何在高流量情况下优 ...