mysql递增函数_SQL使⽤序列⾃动递增
sql函数 的 SQL使⽤序列⾃动递增
序列是⼀组整数1,2,3,...,以便在需要时⽣成。 序列经常使⽤在数据库中,因为很多应⽤都需要在⼀个表中的每⼀⾏包含⼀个唯⼀的值,序列提供了⼀种简单的⽅法来⽣成它们。
本章介绍了如何使⽤序列在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);
启动顺序在⼀个特定的值:table manners troubled her
默认情况下,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);
qq代码教程
或者,您可以创建表,然后设置初始序列值ALTER TABLE。
mysql语句顺序mysql>ALTER TABLE t AUTO_INCREMENT=100;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。