一、创建一张工作表
例:

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. 深度|为什么一定要从DevOps走向BizDevOps?

    简介: 为更好地厘清波涛汹涌的数字化转型浪潮下软件产业所面对的机遇与挑战,6月29日,阿里云云效与阿里云开发者评测局栏目,联合特邀了InfoQ极客帮副总裁付晓岩.南京大学软件工程学院教授张贺.Thou ...

  2. 走近Quick Audience,了解消费者运营产品的发展和演变

    简介: Quick Audience产品是一款云原生面向消费者的营销产品,自诞生以来,经历了三个发展阶段.每个阶段的转变,都与互联网环境和消费者行为的变迁有着极大的关联.   Quick Audien ...

  3. 数据的“敏捷制造”,DataWorks一站式数据开发治理范式演进

    简介: 企业大数据技术发展至今,历经了两次蜕变.第一次蜕变从最初的"小作坊"解决大数据问题,到后来企业用各类大数据技术搭建起属于自己的"大平台",通过平台化的能 ...

  4. 巧用友盟+U-APM 实现移动端性能优化—启动速度

    ​简介: 移动端性能对用户体验.留存有着至关重要的影响,作为开发者是不是被这样吐槽过,"这个 APP 怎么这么大?"."怎么一直在 APP 封面图转悠,点不进去" ...

  5. [FE] G2Plot 更新图表的两种方式

    第一种是使用 G2Plot 对象上的 changeData 方法,如果不涉及到全局 title 等这些的更改,可以采用这种方式. 也就是说,只有纯数据方面的变动,使用 changeData 更新图表数 ...

  6. [Contract] truffle-flattener 合并 Solidity 文件的依赖到一个文件

    使用 $ npm install truffle-flattener -g $ truffle-flattener <solidity-files> > output.sol 为什么 ...

  7. Git 版本控制:构建高效协作和开发流程的最佳实践

    引言 版本控制是开发中不可或缺的一部分,他允许多人同时协作,通过记录每一次代码的变更,帮助开发者理解何时.为什么以及谁做了修改.这不仅有助于错误追踪和功能回溯,还使得团队能够并行工作,通过分支管理实现 ...

  8. 小伙伴说VuePress太简洁了,还有没有其他博客推荐?

    写在前面 自从上一篇文章发出来之后,不少小伙伴开始用VuePress搭建自己的个人网站. 如果小伙伴也想用VuePress零代码零成本搭建个人网站,可以看过来 传送门 怎么零代码零成本搭建个人网站 当 ...

  9. Linux中文件的隐藏属性

    在Linux系统中,可以使用chattr与lsattr来操作文件的隐藏属性.

  10. 2019年最新前端面试题,js程序设计题

    都说机会是留给有准备的人的. 一年之计在于春,面对众多的前端技术,需要时刻充电自己. 我现在整理一些前端js面试程序题. 1.判断一个字符串中出现最多的字符,并计算出现的次数? 2.用css伪类实现下 ...