Oracle自增主键的添加[sequence]--表数据已存在

--增加主键ID
alter table CLERK_COMPARE add id number(16);

--设置sequence使ID自增
create sequence SEQ_ID
  minvalue 1
  maxvalue 999999999
  start with 1;

--将id的值设置为sequence
Update clerk_compare set id=seq_id.nextval;
commit;

--设置id为主键
alter table CLERK_COMPARE
  add constraint CLERK_COMPARE primary key (ID);

补充:

1:一个sequence可以被多个表共享。

2:被多个表共享的sequence生成的数字序列始终连续,不会重新开始。

3:如果不再使用的sequence请删除。

时间: 2024-12-30 00:36:22

Oracle自增主键的添加[sequence]--表数据已存在的相关文章

【转】oracle自增主键的添加[sequence]

注意点: 1:一个sequence可以被多个表共享. 2:被多个表共享的sequence生成的数字序列始终连续,不会重新开始. 3:如果不再使用的sequence请删除. SELECT * FROM DAYSBFJ.DAYS_CARD_UPDATE3 order by id asc --alter table DAYSBFJ.DAYS_CARD_UPDATE3 add source_Flag varchar2(2); --create sequence DAYS_CARD_UPDATE2_SEQ

EntityFramework实体默认值遇到Oracle自增主键

1. Oracle实现主键自动增长 一般我们在Oracle实现主键自动增长,通常通过序列加触发器实现. 定义序列用于获取递增数字 CREATE SEQUENCE 序列名 [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}] 定义触发器,关联序列和表,并在插入数据前补充主键ID create [

主键、自增主键、主键索引、唯一索引概念区别与性能区别

概念区别: 主键:指字段唯一不为空值的列. 主键索引:指的就是主键,主键没有明确的概念定义,主键既是约束,也是索引,主键是索引的一种,是唯一索引的特殊类型.创建主键的时候,数据库默认会为主键创建一个唯一索引. 自增主键:字段类型为数字.自增.并且是主键. 唯一索引:索引列的值必须唯一,但允许有空值.主键是唯一索引,这样说没错.但反火来说唯一索引也是主键就错误了,因为唯一索引允许空值,主键不允许有空值,所以不能说唯一索引也是主键. 性能区别: 通过测试,发现主键.自增主键.唯一索引的查询效率不一样

一次innodb自增主键重要性案例

一次给市场部统计报表数据的案例: 其中有个临时实体表的表创建的时候使用的create table  table_name select xxx from ,所以并未创建主键 创建完成后,我还给其中字段加了索引,索引列基数为1,所以索引选择性是非常好的! 表结构如下: mysql> desc tbl_userlogin_info_tmp2; +--------+------------+------+-----+---------+-------+ | Field  | Type       |

oracle 触发器实现主键自增

drop table book; --创建表 create table book( bookId varchar2(4) primary key, name varchar2(20) ); --创建序列 create sequence book_seq start with 1 increment by 1; --创建触发器 create or replace trigger book_trigger before insert on book for each row begin select

oracle 实现 自增主键功能

转自:https://blog.csdn.net/zxh2075/article/details/78488141 之前有一项工作是将mysql的数据库实现转移到oracle,遇到了自增主键实现的问题. 首先介绍一下MySQL和Oracle的背景知识 1)MySQL建表时必须有一个主键(PRIMARY KEY), 每条主键内容必须唯一(Unique), 所以经常使用一个”ID”字段作为主键,给它一个”auto_increment”属性,让”ID”字段每条记录都自增”1″. 比如下表: 1 CRE

mybatis 添加事物后 无法获取自增主键的问题

检查代码后没发现mapper文件设置自增主键返回的问题,后来检查到,关闭事务后,执行完是可以获取返回的主键的, 我在mysql的客户端里关闭自动提交,发现使用select last_insert_id() 也是可以正确获取最新主键的, 我意识到可能是mybatis配置的问题. 问同事后发现了问题,将 defaultExecutorType 从 BATCH 改为 SIMPLE 即可. 1 <?xml version="1.0" encoding="UTF-8"

2HQL及自增主键

1HQL Hibernate Query Language是一种面向对象的查询语言,HQL的操作对象时类,实例,属性:与EJB3 QL很接近. HQL的功能非常丰富,where子句后支持的运算符异常丰富,不仅包括SQL的运算符,还包括EJB-QL的运算符等. 除了Java类与属性的名称外,查询语句对大小些并不敏感. HQL 不支持union联合查询. select子句 select子句用于确定选择出的属性,当然select选择的属性必须是from后持久化类包含的属性.例如: select p.n

关于mybatis用mysql时,插入返回自增主键的问题

公司决定新项目用mybatis,虽然这个以前学过但是一直没用过都忘得差不多了,而且项目比较紧,也没时间去系统点的学一学,只好很粗略的百度达到能用的程度就行了. 其中涉及到插入实体要求返回主键id的问题,以前用ssh配合oracle很容易实现,因为有sequence,而且mysql也基本没用过,所以只好去百度了. 这个内容还是比较好查的,如下: <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapp