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

WBOY
发布: 2016-06-07 16:13:46
原创
1091 人浏览过

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

以下的文章教会你如何在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,

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

<ol class="dp-xml">
<li class="alt"><span><span>title varchar(255)  </span></span></li>
<li><span>);  </span></li>
<li class="alt"><span>insert into article values (null,'a');   </span></li>
</ol>
登录后复制

向数据库中插入数据。

select * from article; 结果如下:

<ol class="dp-xml">
<li class="alt"><span><span>Id  </span></span></li>
<li><span>Title   </span></li>
<li class="alt"><span>1  </span></li>
<li><span>a  </span></li>
<li class="alt"><span>insert into article values (null,’b’);  </span></li>
<li><span>insert into article values (null,'c');  </span></li>
<li class="alt"><span>insert into article (title) values ('d');  </span></li>
</ol>
登录后复制

select * from article; 结果如下:

<ol class="dp-xml">
<li class="alt"><span><span>Id  </span></span></li>
<li><span>Title   </span></li>
<li class="alt"><span>1  </span></li>
<li><span>a  </span></li>
<li class="alt"><span>2  </span></li>
<li><span>b  </span></li>
<li class="alt"><span>3   </span></li>
<li><span>c  </span></li>
<li class="alt"><span>4  </span></li>
<li><span>d </span></li>
</ol>
登录后复制

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

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

<ol class="dp-xml">
<li class="alt"><span><span>create sequence seq_test_ids  </span></span></li>
<li><span>minvalue 1  </span></li>
<li class="alt"><span>maxvalue 99999999  </span></li>
<li><span>start with 1  </span></li>
<li class="alt"><span>increment by 1  </span></li>
<li><span>nocache  </span></li>
<li class="alt"><span>order;  </span></li>
<li>
<span class="comments"><!--[if !supportLineBreakNewLine]--></span><span> </span>
</li>
<li class="alt">
<span class="comments"><!--[endif]--></span><span> </span>
</li>
</ol>
登录后复制

建解发器代码为:

<ol class="dp-xml">
<li class="alt"><span><span>create or replace trigger tri_test_id  </span></span></li>
<li><span>before insert on test_table   </span></li>
<li class="alt"><span>for each row  </span></li>
<li><span>declare  </span></li>
<li class="alt"><span>nextid number;  </span></li>
<li><span>begin  </span></li>
<li class="alt">
<span>IF :new.id IS NULLor </span><span class="attribute">:new.id</span><span>=</span><span class="attribute-value">0</span><span> THEN  </span>
</li>
<li><span>select seq_test_id.nextval  </span></li>
<li class="alt"><span>into nextid  </span></li>
<li><span>from sys.dual;  </span></li>
<li class="alt">
<span class="attribute">:new.id:</span><span>=</span><span class="attribute-value">nextid</span><span>;  </span>
</li>
<li><span>end if;  </span></li>
<li class="alt"><span>end tri_test_id; </span></li>
</ol>
登录后复制

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

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


来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板