龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > MySQL 技术 >

MySQL&Oracle数据库创建自动递增字段实操

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
以下的文章教会你如何在 MySQL Oracle数据库中创建自动递增字段的实际操作方案,我们大家都知道Oracle(大型网站数据库平台)数据库初学者所必须知道的100个问题如以下所示,望你看完会

以下的文章教会你如何在MySQL&Oracle数据库中创建自动递增字段的实际操作方案,我们大家都知道Oracle(大型网站数据库平台)数据库初学者所必须知道的100个问题如以下所示,望你看完会有所收获。

Oracle(大型网站数据库平台) PL/SQL语言基础

Oracle(大型网站数据库平台)架构的基础知识(入门级)

简单的Oracle(大型网站数据库平台)存储过程的创建方法(菜

Oracle(大型网站数据库平台)中的各种数据类型详细的介绍

Oracle(大型网站数据库平台)触发器详细介绍

简单的Oracle(大型网站数据库平台)存储过程的创建方法

Oracle(大型网站数据库平台)的初学者入门心得

Oracle(大型网站数据库平台)的nvl函数的用法

Oracle(大型网站数据库平台)开发中序列的使用

如何在MySQL&Oracle(大型网站数据库平台)下创建自动递增字段

在MySQL(和PHP搭配之最佳组合)下创建自动递增字段:

create table article

先创建一个表。

(

id int Prima(最完善的虚拟主机管理系统)ry key auto_increment,

设置该字段为自动递增字段。

  1. title varchar(255)  
  2. );  
  3. insert into article values (null,'a');   

向数据库中插入数据。

select * from article; 结果如下:

  1. Id  
  2. Title   
  3. 1  
  4. a  
  5. insert into article values (null,’b’);  
  6. insert into article values (null,'c');  
  7. insert into article (title) values ('d');  

select * from article; 结果如下:

  1. Id  
  2. Title   
  3. 1  
  4. a  
  5. 2  
  6. b  
  7. 3   
  8. c  
  9. 4  

但是Oracle(大型网站数据库平台)没有这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现。

假设关键字段为id,建一个序列,代码为:

  1. create sequence seq_test_ids  
  2. minvalue 1  
  3. maxvalue 99999999  
  4. start with 1  
  5. increment by 1  
  6. nocache  
  7. order;  
  8. <!--[if !supportLineBreakNewLine]--> 
  9. <!--[endif]--> 

建解发器代码为:

  1. create or replace trigger tri_test_id  
  2. before insert on test_table   
  3. for each row  
  4. declare  
  5. nextid number;  
  6. begin  
  7. IF :new.id IS NULLor :new.id=0 THEN  
  8. select seq_test_id.nextval  
  9. into nextid  
  10. from sys.dual;  
  11. :new.id:=nextid;  
  12. end if;  
  13. end tri_test_id; 

OK,上面的代码就可以实现自动递增的功能了。

以上的相关内容就是对在MySQL&Oracle创建自动递增字段的介绍,望你能有所收获。


精彩图集

赞助商链接