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

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

WBOY
WBOYOriginal
2016-06-07 16:13:461048Durchsuche

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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn