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

MySQL 使用序列

发布时间:2022-09-30 07:02:32 所属栏目:MySql教程 来源:网络
导读: MySQL 使用序列
序列是一组整数1、2、3 ,...这是按需求顺序生成的。序列在数据库中经常使用,因为许多应用程序要求表中的每一行包含唯一的值,序列提供了生成它们的简单方法。本章介绍如何在

MySQL 使用序列

序列是一组整数1、2、3 ,...这是按需求顺序生成的。序列在数据库中经常使用,因为许多应用程序要求表中的每一行包含唯一的值,序列提供了生成它们的简单方法。本章介绍如何在MySQL中使用序列。

使用AUTO_INCREMENT列:

在MySQL中,使用序列的最简单的方法是将列定义为AUTO_INCREMENT,并将剩余的东西留给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
);
Query?OK,?0?rows?affected?(0.02?sec)
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');
Query?OK,?3?rows?affected?(0.02?sec)

Records:?3??Duplicates:?0??Warnings:?0
mysql>?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?|
+----+-------------+------------+------------+
3?rows?in?set?(0.00?sec)

获取AUTO_INCREMENT 值:

LAST_INSERT_ID( )是一个SQL函数,因此您可以在任何了解如何发出SQL语句的客户端中使用它。否则,perl和PHP脚本提供独占函数以检索上次记录的自动递增值。

perl示例:

使用 mysql_insertid 属性来获取 AUTO_INCREMENT 的值。 实例如下:

$dbh->do?("INSERT?INTO?insect?(name,date,origin)
VALUES('moth','2001-09-14','windowsill')");
my?$seq?=?$dbh->{mysql_insertid};

PHP示例:

使用 mysql_insertid 属性来获取 AUTO_INCREMENT 的值。 实例如下:

mysql_query?("INSERT?INTO?insect?(name,date,origin)

MySQL 序列使用_mysql如何创建序列_mysql 查询序列

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

重置序列

如果你删除了数据表中的多条记录,并希望对剩下数据的AUTO_INCREMENT列进行重新排列,那么你可以通过删除自增的列,然后重新添加来实现。 不过该操作要非常小心,如果在删除的同时又有新记录添加,有可能会出现数据混乱。操作如下所示:

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

设置序列的开始值

一般情况下序列的开始值为1,但如果你需要指定一个开始值100MySQL 序列使用,那我们可以通过以下语句来实现:

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
);

或者你也可以在表创建成功后,通过以下语句来实现:

mysql>?ALTER?TABLE?t?AUTO_INCREMENT?=?100;

(编辑:成都站长网)

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