Oracle ID 自增

实现Oracle Id自增

1、方法一

create table app_student
(
id integer generated by default as identity
not null primary key,
createtime DATE not NULL
);

insert into app_student(createtime) values(sysdate);

2. 方法二 创建序列

创建表

CREATE TABLE APP_USER(
  ID number(20) NOT NULL PRIMARY KEY,
  Create_Time date NOT NULL

);

  

--创建序列
create sequence seq_app_user
minvalue 1000
nomaxvalue
start with 1000
increment by 1
nocycle --一直累加,不循环
--nocache --不缓存
cache 10; --缓存10条

  

创建触发器

--创建触发器,如果insert语句不知道ID自动插入增长值
CREATE OR REPLACE TRIGGER tr_app_user
BEFORE INSERT ON app_user FOR EACH ROW When (new.ID is null)
begin
  select seq_app_user.nextval into:new.ID  from dual;
end;

  

插入数据:

ID的格式由序列控制

insert into APP_USER(  Create_Time)
values( sysdate)

  

自己控制ID的格式

insert into APP_USER( ID,  Create_Time)
values(to_number(to_char(sysdate,‘yyyymmddhh24miss‘) + seq_app_student.nextval), sysdate)

 id的格式为时间+序列 

原文地址:https://www.cnblogs.com/linlf03/p/9758994.html

时间: 2024-10-07 17:03:02

Oracle ID 自增的相关文章

oracle + mybatis 自增 id的的配置

大过年的还要敲代码,想想也是醉人.今天忙着赶毕设,在做功能测试的时候发现id的值一直为0,一看就知道id的值没有自增,一直默认为0了.于是去百度了一番,默默调试,找到下面这段代码: <selectKey keyProperty="id" resultType="int" order="BEFORE"> SELECT SEQ_RESULT_ID.nextval as id FROM DUAL </selectKey> 这段代

oracle实现自增id

--oracle实现自增id --创建一张T_StudentInfo表 create table T_StudentInfo ( "id" integer not null primary key, xsName nvarchar2(120) not null, xsAge integer not null, Mobile varchar(12), Email varchar(50), Address nvarchar2(300) ); --创建一个序列,序列名字叫SEQ_Studen

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

在设计数据库的时候,Oracle中没有类似SQL Server中系统自动分配ID作为主键的功能,这时Oracle可以通过"序列"和"触发器"来实现ID自动增加的功能. 1.创建序列Sequence create sequence seq_uid increment by 1 start with 1 nomaxvalue nocycle cache 10 ; 其中:"seq_uid"表示自定义的序列名称: "start with 1&q

Oracle 给表添加主键和使ID自增

1.关于主键:在建表时指定primary key字句即可:create table test( id number(6) primary key, name varchar2(30));如果是对于已经建好的表,想增加主键约束,则类似语法:alter table test add constraint pk_id primary key(id); 其中add constraint 和 primary key是关键字,pk_id是主键名称,自定义的额,只要不重复即可. 2.关于id自增功能,也很简单

Oracle列自增实现(2)-Identity Columns in Oracle Database 12c Release 1 (12.1)

Oracle列自增-Identity Columns in Oracle Database 12c Release 1 (12.1) 在ORACLE 12C以前的版本中,如果要实现列自增长,需要通过序列+触发器实现,到了12C ORACLE 引进了Identity Columns新特性,从而实现了列自增长功能. 一.Identity Columns使用语法 GENERATED [ ALWAYS | BY DEFAULT [ ON NULL ] ] AS IDENTITY [ ( identity

数据库ID自增

hibernate利用mysql的自增长id属性实现自增长id和手动赋值id并存 我们知道在MySQL中如果设置了表id为自增长属性的话,insert语句中如果对id赋值(值没有被用到过)了,则插入的数据的id会为用户设置的值,并且该表的id的最大值会重新计算,以插入后表的id最大值为自增值起点 但是如果使用hibernate,也想实现这个mysql的特性的话,怎么做呢? 首先我们看下hibernate的id生成策略: hibernate文档写道 1.自动增长identity 适用于MySQL.

oracle列自增实现

1.Sequence+Trigger实现Oracle列自增CREATE SEQUENCE 序列名[INCREMENT BY n][START WITH n][{MAXVALUE/MINVALUE n|NOMAXVALUE}][{CYCLE|NOCYCLE}][{CACHE n|NOCACHE}];创建测试表[email protected]CDB> CREATE TABLE TEST(2 ID NUMBER (10) NOT NULL,3 DESCRIPTION VARCHAR2 (50) NO

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

phpmyadmin设置id自增(AUTO_INCREMENT)(转)

phpmyadmin设置id自增(AUTO_INCREMENT)   在A_I 前面打勾:如图 AUTO_INCREMENT =A_I 查看效果