mysql数据库序列作用_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.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');
Query OK, 3 rows affected (0.02sec)
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;
mysql数据库序列作用_MySQL 序列使用相关推荐
- mysql数据库字符集作用_MYSQL数据库字符集支持
MySQL4.1以前版本服务器只能使用单一字符集,从MySQL4.1版本开始,不仅服务器能够使用多种字符集,而且在服务器.数据库.数据表.数据列以及字符串常数多个级别上设置不同的字符集. 1.4.1. ...
- mysql leave的作用_MySQL数据库中DELIMITER的作用
以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 下面是一个 ...
- mysql delimiter的作用_MySQL数据库中delimiter的作用概述
以下的文章主要是向大家描述的是MySQL数据库中delimiter的作用是什么?我们一般都认为这个命令和存储过程关系不大,到底是不是这样的呢?以下的文章将会给你相关的知识,望你会有所收获. 其实就是告 ...
- mysql数据库根目录恢复_MySQL中数据导入恢复的简单教程
有两个简单的方法MySQL中的数据加载到MySQL数据库从先前备份的文件. LOAD DATA导入数据: MySQL提供了LOAD DATA语句,作为一个大容量数据加载.下面是一个例子声明中,读取一个 ...
- mysql 慢日志 作用_MySQL慢查询日志的作用和开启
前言 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.lon ...
- mysql数据库物理备份_MySQL数据库之xtrabackup物理备份(一)
(1)备份开始时会开启一个后台检测进程,实时检测mysql redo(已提交的事务)的变化,一旦发现redo中有新日志写入,立刻将日志记入后台日志文件xtrabackup_log中, (2)复制Inn ...
- mysql数据库帐户_MySQL数据库用户帐号管理基础知识详解
MySQL管理员应该知道怎样通过指定哪些用户可连接到服务器.从哪里进行连接,以及在连接 时做什么,来设置MySQL用户账号.MySQL3.22.11引入了两个更容易进行这项工作的语句:GRANT 语句 ...
- mysql数据库优化大全_MySQL数据库优化技巧大全
简介: MySQL数据库优化技巧大全 MySQL优化三大方向 ① 优化MySQL所在服务器内核(此优化一般由运维人员完成). ② 对MySQL配置参数进行优化(my.cnf)此优化需要进行压力测试来进 ...
- mysql数据库前端缓存_MySQL数据库性能优化--缓存参数优化
在平时被问及最多的问题就是关于 MySQL 数据库性能优化方面的问题,所以最近打算写一个MySQL数据库性能优化方面的系列文章,希望对初中级 MySQL DBA 以及其他对 MySQL 性能优化感兴趣 ...
最新文章
- Cell封面:王二涛组在丛枝菌根共生“自我调节”研究中取得重大进展(视频+漫画解读)...
- python绘制中国加油_软件开发|使用 Python 为你的油箱加油
- 实际工程里的长宽设定
- 用数学方法构造神经网路的迭代次数1-9
- SCI录用的最后一步——答复审稿人的策略和答复信的写作技巧
- 不要迷失在技术的海洋中【转】
- 使用Spring Integration轮询http端点
- Windows批处理文件(.bat文件和.cmd文件)简单使用
- Spring Boot笔记-@PathVariable的使用
- iOS UIWebView清除缓存
- intellij常用快捷键
- 打印系统开发(56)——打印机驱动程序设计指南
- CSS font-family字体大合集
- 南航计算机考研调剂,南京航空航天大学接受调剂生的时间定了,南航读研就业会咋样...
- macOS上使用aircrack-ng暴力破解Wi-Fi密码
- Unity切割图片:把一张图片中的物体裁成多个单独的游戏物体
- python小案例程序安徽工程大学专用百词斩(刚接触python不喜勿喷)
- 安装Ubuntu 16.04后的系统设置和软件安装(搜狗输入法、Chrome、网易云音乐等)
- Javascript进阶笔记
- 图像处理课程大设计--汽车牌照自动识别