ホームページ  >  記事  >  データベース  >  MySQL&Oracle数据库创建自动递增字段实操

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

WBOY
WBOYオリジナル
2016-06-07 16:13:461048ブラウズ

以下的文章教会你如何在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创建自动递增字段的介绍,望你能有所收获。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。