orcale设置自增列

create sequence SEQ_ERRORID
minvalue 1
maxvalue 99999999
start
with 1000
increment by 1
nocache
order;

create or replace trigger tri_ERRORINFO_ERRORID --触发器名称
before insert
on REPORT_ERRORINFO_PDF --Test是表名
for each row
declare

nextid number;
begin
IF :new.ERRORID IS NULL or :new.ERRORID=0
THEN --id是列名
select SEQ_ERRORID.nextval --S_Test正是刚才创建的序列
into
nextid
from sys.dual;
:new.ERRORID:=nextid;
end if;

end tri_ERRORINFO_ERRORID;

DROP TRIGGER tri_ERRORINFO_ERRORID

drop sequence SEQ_ERRORID

orcale设置自增列,码迷,mamicode.com

时间: 2024-11-15 17:15:26

orcale设置自增列的相关文章

orcale实现自增列

手动创建了一个表格,但是id字段无法实现自增,查看了一下网上的信息,没有找到满意的答案.一下是自己总结摸索的,仅供参考 第一步:手动创建表和列中的字段 (本例中,表明 T_VIDEO,第一个字段:ID) 第二步:创建sequence,如图, 第三步:创建触发器,如图, 触发器的代码如下 create or replace trigger tri_video before insert on T_video for each row declare integrity_error exceptio

MySQL面试题之为什么要为innodb表设置自增列做主键?

为什么要为innodb表设置自增列做主键? 1.使用自增列做主键,写入顺序是自增的,和B+数叶子节点分裂顺序一致 2.表不指定自增列做主键,同时也没有可以被选为主键的唯一索引,InnoDB就会选择内置的rowid作为主键,写入顺序和rowid增长顺序一致 所以InnoDB表的数据写入顺序能和B+树索引的叶子节点顺序一致的话,这时候存取效率是最高 原文地址:https://www.cnblogs.com/FengGeBlog/p/10284284.html

Oracle12c:支持通过创建identity columen来实现创建自增列

oracle12c之前如果需要创建自增列必须要通过sequence+trigger来实现.但是oracle12c已经可以像mysql,sqlserver一样通过identity column来设置自增列了. 1 Connected to Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 2 Connected as My@TEST 3 4 SQL> 5 SQL> create table tab_test2 6 2 ( 7 3

SQL Server查询时添加一列连续的自增列

在SQL Server数据库中表信息会用到Identity关键字来设置自增列.但是当有数据被删除的话,自增列就不连续了.如果想查询出这个表的信息,并添加一列连续自增的ID,可用如下查询语句: select Row_Number() over ( order by getdate() ) as init , * from 表名

怎么重置mysql的自增列AUTO_INCREMENT初时值

重置 MySQL 自增列 AUTO_INCREMENT 初时值 注意, 使用以下任意方法都会将现有数据删除. 方法一: delete from tb1; ALTER TABLE tbl AUTO_INCREMENT = 100; 1 2 (好处, 可以设置 AUTO_INCREMENT 为任意值开始) 提示:如果表列和数据很多, 速度会很慢, 如90多万条, 会在10分钟以上. 方法二: truncate tb1; 1 (好处, 简单, AUTO_INCREMENT 值重新开始计数.) 怎么重置

SQL 如何在自增列插入指定数据

SQL Server  中数据表往往会设置自增列,常见的比如说 首列的ID列. 往数据表插入新数据的时候,自增列是跳过的,无需插入即会按照设置的自增规则进行列增长.那么,如果我们想往自增列插入我们指定的数据时该怎么做呢?  一:建立一张简单的测试表 CREATE TABLE randy_test (id INT IDENTITY(1,1), num INT) 二:如果强行插入数据时: INSERT INTO randy_test VALUES (1,11) 消息 8101,级别 16,状态 1,

DataTable设置自增标识列的异常

public DataSet GetProviderTypeDs()         {             using (SqlConnection con = new SqlConnection(this.conStr))             {                 SqlCommand cmd = con.CreateCommand();                 cmd.CommandType = CommandType.Text;               

程矢Oracle PowerDesigner中生成Oracle版本主键和自增列

Oracle中如何新建自增列,总的来说需要建立序列,并把这个序列付给某一列,重建触发器即可. 第一步,打开PD,新建一个PDM文档,然后新建一个表,如图所示: 第二步,创建一个序列.在[Model]-[Sequence]打开序列列表窗口,新建一个序列.然后打开序列的属性设置项[physical Options],进行如下设置,点击确定,序列建立完毕. 第三步,将刚刚创建的序列应用到表的主键列中,如图所示:点击确定, 点击确定,至此,自动创建了一个触发器,把序列的值添加到主键中.

Hibernate自增列保存失败的问题

author: hiu 最近由ibatis转用Hibernate,期间遇到了一系列的问题,今天又遇到了个问题,是因为自增列的问题导致保存时报错,现在记录下来,以便日后忘记时查看 这个问题其实是使用myEclipse生成表的实体类时,自增列的注解错误导致的. 问题原因:利用myEclipse的Hibernate Reverse Engineening生成的实体类自增列注解设置了在主键keyjobno上,而不是对应的 id 列上 解决办法 :将自增列注解设置在对应的 自增列id上 数据库employ