MySQL 序列 AUTO_INCREMENT详解及实例代码

发布时间 - 2026-01-10 22:50:37    点击率:

MySQL 序列 AUTO_INCREMENT详解及实例代码

MySQL序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。

本章我们将介绍如何使用MySQL的序列。

使用AUTO_INCREMENT

MySQL中最简单使用序列的方法就是使用 MySQL AUTO_INCREMENT 来定义列。

实例

以下实例中创建了数据表insect, insect中id无需指定值可实现自动增长。

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值

在MySQL的客户端中你可以使用 SQL中的LAST_INSERT_ID( ) 函数来获取最后的插入表中的自增列的值。

在PHP或PERL脚本中也提供了相应的函数来获取最后的插入表中的自增列的值。

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实例

PHP 通过 mysql_insert_id ()函数来获取执行的插入SQL语句中 AUTO_INCREMENT列的值。

mysql_query ("INSERT INTO insect (name,date,origin)
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,但如果你需要指定一个开始值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
);

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

mysql> ALTER TABLE t AUTO_INCREMENT = 100;

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# MySQL  # 序列  # AUTO_INCREMENT  # AUTO_INCREMENT详解  # AUTO_INCREMENT简单实例  # MySQL 序列(AUTO_INCREMENT)的使用示例  # 来实现  # 如果你  # 你可以  # 又有  # 你想  # 可以通过  # 希望能  # 可以使用  # 所示  # 中也  # 谢谢大家  # 最简单  # 你也可以  # 如何使用  # 多条  # 值为  # 就可以  # 有一个  # 中你  # 主键 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何配置Horizon来管理队列?(安装和使用)  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  中国移动官方网站首页入口 中国移动官网网页登录  Laravel如何使用Gate和Policy进行授权?(权限控制)  西安专业网站制作公司有哪些,陕西省建行官方网站?  Python制作简易注册登录系统  bing浏览器学术搜索入口_bing学术文献检索地址  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  PHP正则匹配日期和时间(时间戳转换)的实例代码  微信小程序 scroll-view组件实现列表页实例代码  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  如何快速辨别茅台真假?关键步骤解析  如何快速搭建支持数据库操作的智能建站平台?  Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  利用JavaScript实现拖拽改变元素大小  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  网站制作壁纸教程视频,电脑壁纸网站?  重庆市网站制作公司,重庆招聘网站哪个好?  如何在香港服务器上快速搭建免备案网站?  Internet Explorer官网直接进入 IE浏览器在线体验版网址  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  网站制作免费,什么网站能看正片电影?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  浅述节点的创建及常见功能的实现  如何获取免费开源的自助建站系统源码?  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  如何有效防御Web建站篡改攻击?  Laravel如何使用Service Container和依赖注入?(代码示例)  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  如何在服务器上配置二级域名建站?  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  如何在万网开始建站?分步指南解析  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  非常酷的网站设计制作软件,酷培ai教育官方网站?  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案  Python3.6正式版新特性预览  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  如何选择可靠的免备案建站服务器?  Laravel如何升级到最新版本?(升级指南和步骤)