Home > Database > Mysql Tutorial > body text

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

WBOY
Release: 2016-06-07 16:13:46
Original
1046 people have browsed it

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

向数据库中插入数据。

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>
Copy after login

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>
Copy after login

但是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>
Copy after login

建解发器代码为:

<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>
Copy after login

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

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


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!