oracle 自增ID疑问

问题描述

cata0是表名,cata0_id是需要自增的字段!CREATE SEQUENCE SEQ_cata0 INCREMENT BY 1 START WITH 1 MAXVALUE 9999999CREATE TRIGGER TRG_cata0 BEFOREINSERT ON cata0FOR EACH ROW begin SELECT SEQ_cata0.NEXTVAL INTO :NEW.cata0_ID FROM DUAL;End TRG_cata0;在网上看到这段代码 但有个地方不懂 请指教 谢谢! INTO :NEW.cata0_ID 这句中cata0_ID是主键ID,new.cata0_ID 是什么意思啊(特别是NEW 是什么含义)

解决方案

new.cata0_ID在insert触发器中表示的是新增加的cata0_ID的值,new表示新增加的一行数据,如果是针对的是update的触发器还有old, old表示的是更新前的一行数据,new表示的是更新后的一行数据,old.cata0_ID表示更新前cata0_ID的值,new.cata0_ID表示更新后cata0_ID的值。我知道什么意思,可能解释的不是很到位,反正就是这个意思 ,敬请谅解:)

时间: 2024-07-28 12:50:47

oracle 自增ID疑问的相关文章

在oracle数据库里创建自增ID字段的步骤_oracle

在oracle里使用自增ID字段的步骤比较繁琐,总结如下: -- 创建表 CREATE TABLE ADVICE ( ID INT NOT NULL, ACTIVE INT DEFAULT 1 NOT NULL, TYPE INT NOT NULL, MSG VARCHAR2(512) NOT NULL, ADVICE VARCHAR2(4000) NOT NULL, PRIMARY KEY(ID), CONSTRAINT ADVICE_UNI UNIQUE(TYPE,MSG) )TABLESP

oracle自增列创建方法收藏

  oracle自增列创建方法收藏 Oracle没有自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现. 先建一个测试表了: create table userlogin ( id number(6) not null, name varchar2(30) not null primary key ) tablespace users / 第一步:创建SEQUENCE create sequence userlogin_seq increment by 1 s

php实现Mongodb自定义方式生成自增ID的方法

 这篇文章主要介绍了php实现Mongodb自定义方式生成自增ID的方法,实例分析了Mongodb自增字段的实现技巧与对应php操作方法,需要的朋友可以参考下     本文实例讲述了php实现Mongodb自定义方式生成自增ID的方法.分享给大家供大家参考.具体分析如下: 代码如下: //首先创建一个自动增长id集合 ids >db.ids.save({name:"user", id:0}); //可以查看一下是否成功 > db.ids.find(); { "_i

在oracle中删除id后id就不再连续了

问题描述 如何在oracle中删除id后 再次让id连续比如我删除了id为1,3,5的数据后再次查询 id就不再试从1开始了,而是从2请教各位 如何做到 问题补充:redstarofsleep 写道 解决方案 id是一个唯一值,最好的处理方式就是一次写入永不更改.你的改动会带来级联效应,系统中所有涉及到这个表的外键都要更改.而你改动了这个值有什么好处呢?你这个改动就像一个城市的车牌因为其中一个号码报废了,所有的后续车牌都要递减一个号码一样.有意义么?解决方案二:明白你的意思了,你就是想让ID永远

【MySQL】如何获取自增id

 去"O"的业务支撑的时候,遇到一个开发询问如何获取到MySQL 的自增id,这里做一个总结,我们可以通过四种方式来获取MySQL 的自增id. 一 last_insert_id()官方介绍如下:"The ID that was generated is maintained in the server on a per-connection basis. This means that the value returned by the function to a give

MySQL分表自增ID问题的解决方法_Mysql

当我们对MySQL进行分表操作后,将不能依赖MySQL的自动增量来产生唯一ID了,因为数据已经分散到多个表中.  应尽量避免使用自增IP来做为主键,为数据库分表操作带来极大的不便.  在postgreSQL.oracle.db2数据库中有一个特殊的特性---sequence. 任何时候数据库可以根据当前表中的记录数大小和步长来获取到该表下一条记录数.然而,MySQL是没有这种序列对象的.  可以通过下面的方法来实现sequence特性产生唯一ID:  1. 通过MySQL表生成ID 对于插入也就

php实现Mongodb自定义方式生成自增ID的方法_php技巧

本文实例讲述了php实现Mongodb自定义方式生成自增ID的方法.分享给大家供大家参考.具体分析如下: 复制代码 代码如下: //首先创建一个自动增长id集合 ids >db.ids.save({name:"user", id:0}); //可以查看一下是否成功 > db.ids.find(); { "_id" : ObjectId("4c637dbd900f00000000686c"), "name" : &q

Mongodb自增id实现方法_MongoDB

本文实例讲述了Mongodb自增id实现方法.分享给大家供大家参考,具体如下: 首先创建一个自动增长id集合 ids >db.ids.save({name:"user", id:0}); 可以查看一下是否成功 > db.ids.find(); { "_id" : ObjectId("4c637dbd900f00000000686c"), "name" : "user", "id&quo

两种mysql对自增id重新从1排序的方法

  本文介绍了两种mysql对自增id重新从1排序的方法,简少了对于某个项目初始化数据的工作量,感兴趣的朋友可以参考下 最近老是要为现在这个项目初始化数据,搞的很头疼,而且数据库的Id自增越来越大,要让自增重新从1开始:那么就用下面的方法吧: 方法一:如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数 truncate table 表名 方法二:dbcc checkident ('table_name', reseed, new_reseed_value) 当前值设置