加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_镇江站长网 (https://www.0511zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

mysql递增函数_SQL使用序列自动递增

发布时间:2022-12-10 13:34:37 所属栏目:MsSql教程 来源:网络
导读: sql函数 的 SQL使用序列自动递增
序列是一组整数1,2,3mssql 使用序列,...,以便在需要时生成。 序列经常使用在数据库中,因为很多应用都需要在一个表中的每一行包含一个唯一的值,序列提

sql函数 的 SQL使用序列自动递增

序列是一组整数1,2,3mssql 使用序列,...,以便在需要时生成。 序列经常使用在数据库中,因为很多应用都需要在一个表中的每一行包含一个唯一的值,序列提供了一种简单的方法来生成它们。

本章介绍了如何使用序列在MySQL中。

使用自动递增(AUTO_INCREMENT)列:

在MySQL中最简单的方法来使用顺序是定义一个列AUTOINCREMENT并保留其余的事情由MySQL处理。

实例:

尝试下面的例子。这将创建表,之后将插入几行该表中,其中它不要求,得到的记录ID,因为其自动递增被MySQL。

mysql>CREATE TABLE INSECT->(->id INT UNSIGNED NOT NULL AUTO_INCREMENT,->PRIMARY KEY(id),->name VARCHAR(30)NOT NULL,# type of insect->date DATE NOT NULL,# date collected->origin VARCHAR(30)NOT NULL# where collected);QueryOK,0rows affected(0.02sec)mysql>INSERT INTO INSECT(id,name,date,origin)VALUES->(NULL,'housefly','2001-09-10','kitchen'),->(NULL,'millipede','2001-09-10','driveway'),->(NULL,'grasshopper','2001-09-10','front yard');QueryOK,3rows affected(0.02sec)Records:3Duplicates:0Warnings:0mysql>SELECT*FROM INSECT ORDER BY id;+----+-------------+------------+------------+|id|name|date|origin|+----+-------------+------------+------------+|1|housefly|2001-09-10|kitchen||2|millipede|2001-09-10|driveway||3|grasshopper|2001-09-10|front yard|+----+-------------+------------+------------+3rowsinset(0.00sec)

获得自动递增(AUTO_INCREMENT)的值:

LAST_INSERT_ID( ) 是SQL的函数,这样就可以从发出SQL语句的任何客户端中使用它。否则,Perl和PHP脚本提供专门函数来获取最后一条记录的自动递增值。

PERL示例:

使用mysql_insert_id属性来获得由查询生成的AUTO_INCREMENT值。此属性是通过一个数据库句柄或语句句柄访问,这取决于发出查询。下面的例子中引用它通过数据库句柄:

$dbh->do("INSERT INTO INSECT (name,date,origin)

VALUES('moth','2001-09-14','windowsill')");my$seq=$dbh->{mysql_insertid};

PHP示例:

发出产生的AUTO_INCREMENT值的查询后,通过mysql_insert_id( )调用检索值:

mysql_query("INSERT INTO INSECT (name,date,origin)

VALUES('moth','2001-09-14','windowsill')",$conn_id);$seq=mysql_insert_id($conn_id);

重编一个现有的序列:

有可能出现一种情况,当从表中已删除多条记录,并且希望所有的记录重新排序。这可以通过使用一个简单的技巧来完成,但这样做要非常小心,如果你的表连接使用其他表。

如果确定重新排序AUTO_INCREMENT列是不可避免的,这样做的方式是从表中删除列,然后重新添加这个删除的列。下面的例子演示了如何使用这种技术在 insect 表重新编号ID值:

mysql>ALTER TABLE INSECT DROP id;mysql>ALTER TABLE insect->ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,->ADD PRIMARY KEY(id);

启动顺序在一个特定的值:

默认情况下,MySQL将从1开始顺序,但可以在创建表时指定的任何其他数字也是可以的。以下为例子,MySQL顺序将从100开始。

mysql>CREATE TABLE INSECT->(->id INT UNSIGNED NOT NULL AUTO_INCREMENT=100,->PRIMARY KEY(id),->name VARCHAR(30)NOT NULL,# type of insect->date DATE NOT NULL,# date collected->origin VARCHAR(30)NOT NULL# where collected);

或者,您可以创建表,然后设置初始序列值ALTER TABLE。

mysql>ALTER TABLE t AUTO_INCREMENT=100;

(编辑:应用网_镇江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!