Oracle数据库实现字段自增
来源:互联网 发布:线割编程留暂停点 编辑:程序博客网 时间:2024/06/06 05:36
在用Oracle时,出现了这样一个状况,添加模块时,只传入了一个模块名称,而表中还有一个模块ID,这个ID设定的是自增。但是在Oracle中没有字段自增这个功能。但是可以通过自己写序列、触发器来实现这样的一个功能。
先说一下自增这个功能:自增,无非就是在插入的时候,自增的字段按照某种序列实现自动加一并且赋值。那么我们就再Oracle中创建一个序列,并且创建一个触发器,使其在插入的时候,序列自增1并且对自增字段进行赋值。
我用的是PL/SQL进行的可视化创建。
创建序列:
Name:序列的名字
Min Value:最小计数
Max Value:最大计数
Star with:从几开始
Increment by:步长
Cache Size:缓存序列
指定Cache,oracle会预先在内存中防止一组指定大小的序列,当使用完这些后再生成下一组,这样会
存取的快些,但当数据库关闭等情况时,下一次再生成序列时可能会使序列间断,不是遗传连续的
号,当不是特别需要连续的序列时,最好制定;
不填写Cache,会使用默认设置;当Cache设置为0或nocache,会产生连续的序列。
Cycle:循环序列,当达到最大值后,从最小值重新开始
Order:保证序列产生的顺序和请求的顺序是一直的,在并行模式下,如果A、B同时对序列请求,那么先产
生的序列号必然返回给先请求的用户。这种情况只发生在oracle并行服务器上(目前还没有接触),大
多数情况下部需要。
创建触发器:
语句级(Statementlevel)触发器,在CreateTrigger语句中不包含foreachrow子句。语句级
触发器对于触发事件只能触发一次,而且不能受触发器影响的每一行的列值。一般用与剧集触发器处理
有关引起触发器触发的SQL语句的信息——例如,由谁来执行和什么时间执行。
行级(Row-level)触发器,在CreateTrigger语句中包含ForEachRow子句。行级触发器可对受触
发器影响的每一行触发,并且能够访问原列值和通过SQL语句处理的新列值。行级触发器的典型应用是
当需要知道行的列值时,执行一条事务规则。
确定后,会出现下面的画面
现在需要在begin和end中间插入一句话 select SEQ_MODEL.Nextval INTO :new.mdlID FROM dual;
不知道细心的你是不是看懂了上面的这句话?如果不能,那么看一下下嘛的补充
补充:
1)对于Insert语句,要呗插入的数值包含在new.column_name,这里的column_name是表中的一列
2)对于Update语句,列的原值被包含在old_column_name中,数据列的新值在new.column_name
中。
3)对于Delete语句,将要删除的行的列值放在old.column_name中。
- Oracle数据库实现字段自增
- Oracle数据库实现字段自增
- ORACLE实现字段自增
- oracle实现自增字段
- ORACLE实现字段自增
- oracle数据库自增字段的设置
- Oracle数据库设置自增字段
- Oracle自增型字段的实现
- Oracle下实现数据字段自增
- Oracle自增字段实现方法
- Oracle自增型字段的实现
- Oracle 自增字段的简单实现
- oracle序列实现自增字段
- Oracle中如何实现自增字段
- ORACLE实现字段自增示例说明
- Oracle中如何实现自增字段
- Oracle自增字段实现之ThinkPHP
- ORACLE自增字段
- SSMS无法连接远程数据库实例的解决办法
- 解决Android4.0 系统设置大号字体后布局错乱的问题
- c++ 0x Lambda :在自己的项目中使用
- 关于*p++和++p*
- 两台oracle数据库相互导数据
- Oracle数据库实现字段自增
- C语言实现字符串中查找字符串
- 一些开源库,提高开发效率
- .net ORM SubSonic
- C++对象模型 多重继承与虚函数表
- iphone翻页效果
- Nginx的upstream模块和反向代理
- 不同硬件平台上移植Android的Camera系统
- IOS 命名规范