MySQL 序列使用
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,-> PRIMARY KEY (id),-> name VARCHAR(30) NOT NULL, -> date DATE NOT NULL,-> origin VARCHAR(30) NOT NULL
)engine=innodb auto_increment=100 charset=utf8;
或者你也可以在表创建成功后,通过以下语句来实现:
mysql> ALTER TABLE t AUTO_INCREMENT = 100;
了解更多数据库知识,点击原文链接:www.shulanxt.com/database/mysql/mysql-using-sequences
MySQL 序列使用相关推荐
- mysql序列increment_MySQL 序列 AUTO_INCREMENT
MySQL序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将介绍如何使用MySQL的序列 ...
- 删除行对MySQL序列有这么多影响?
墨墨导读:MySQL序列概述为了达到标识的目的,许多应用程序需要生成唯一编号,比如:商品编号.交易流水号等. 一.MySQL序列概述 为了达到标识的目的,许多应用程序需要生成唯一编号,比如:商品编号. ...
- 雷林鹏分享:MySQL 序列使用
MySQL 序列使用 MySQL序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将介绍如 ...
- mysql重复记录大于十的数据库_MySQL专题10之MySQL序列使用、MySQL处理重复数据、MySQL以及SQL的注入...
1.MySQL序列使用 - MySQL序列是一组整数:1,2,3...,由于一张数据表只能有一个字段自增主键,如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. - 使用AUTO ...
- 第30章 MySQL 序列使用教程
MySQL 序列是一组整数:1, 2, 3, -,由于一张数据表只能有一个字段自增主键, 如果仁兄想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章咱们将介绍如何使用MySQL的序列 ...
- mysql 序列_MySql中序列的应用和总结
Mysql中的序列主要用于主键,主键是递增的字段,不可重复. Mysql与Oracle不同的是,它不支持原生态的sequence,需要用表和函数的组合来实现类似序列的功能. 1.首先创建序列的主表 / ...
- mysql序列 mybatis_MySQL实现序列(Sequence)效果以及在Mybatis中如何使用这种策略
前言: 在oracle中一般使用序列(Sequence)来处理主键字段,在MySQL中是没有序列的,但是MySQL有提供了自增长(increment)来实现类似的目的,但也只是自增,而不能设置步长.开 ...
- 并发安全的mysql序列实现
--仿照序列表 drop table if exists sequence; create table sequence ( seq_name VARCHAR(50) ...
- mysql 序列自增长 恢复到1_大数据教程分享MySQL数据库约束条件和自增长序列
大数据教程分享MySQL数据库约束条件和自增长序列,一.约束(constraint) 约束就是在表上强制执行的一种校验规则,当执行DML操作时,数据必须符合这些规则,如果不符合,将无法执行. 约束的全 ...
最新文章
- ubuntu 进入 recovery mode
- mybatis.xml中sql编写规范
- 11、MySQL算术运算符
- C语言程序练习- L1-040 最佳情侣身高差 (10分)
- 去掉Phoca Download的Powered By
- python3 shutil模块
- go使用mongodb
- 中国顶级AI盛会,10月魔都等你来解密!
- 蓝桥杯 ADV-194 算法提高 盾神与积木游戏 java版
- CondaHTTPError问题的解决
- 第一个python程序-判断登陆用户名和密码是否正确
- 反编译那些事儿(一)
- GeoTiff及GDAL切图(java)
- “长江第一灯光秀”引关注 景观工程首次应用4G 路由
- C语言利用switch的简单计算器
- 优动漫PAINT基础系列之图层模式
- SQLZOOL练习题答案和解析 第2关 SELECT from World
- 小米应用开发者文档(标注需要注意的地方)
- 前端开发行业真的会被AI取代吗?
- JSP与Servlet 基础知识
热门文章
- A. Serval and Mocha‘s Array codeforces 1789A
- 【ZUFE-校内竞赛】校内常见竞赛难度分类及参赛建议(浙江财经大学信智学院角度)
- python同步异步,python异步回调转为同步并实现超时
- python实战(二)模拟登陆两小无猜网
- c51时钟数码管显示流程图_基于单片机89C51的数码管显示时钟设计.doc
- ppt流程图字体太小_PPT基础不好?这5个高大上的PPT技巧,瞬间让老板刮目相看!...
- 日语教程下载 日语学习方法
- 高中生黑了学校所有的电子屏,结果老师转发点赞,当地政府还上门求合作
- (附源码)计算机毕业设计ssm服装创意定制管理系统
- 大一学生课设c——服装管理系统