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

);

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: 3 Duplicates: 0 Warnings: 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|

+----+-------------+------------+------------+

3rowsin set (0.00sec)

获取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;

喜欢 (0)or分享 (0)

Mysql sequence使用_MySQL 序列使用_mysql sequence_mysql auto increment相关推荐

  1. mysql varchar 主键_MySQL – 如何使用VARCHAR作为AUTO INCREMENT主键

    我使用VARCHAR作为我的主键.我想自动递增它(基数62,大写/小写,数字),但是,下面的代码失败(出于显而易见的原因): CREATE TABLE IF NOT EXISTS `campaign` ...

  2. mysql 分片 数据迁移_简述MySQL分片中快速数据迁移_MySQL

    推荐阅读:MySQL 数据库跨操作系统的最快迁移方法 mysql 备份与迁移 数据同步方法 操作实践背景: travelrecord表定义为10个分片,尝试将10个分片中的2个分片转移到第二台MySQ ...

  3. mysql 登录默认实例_【MySQL案例】mysql本机登录-S失灵_mysql

    [mysql案例]mysql本机登录-S失效 1.1.1. mysql本机登录mysql时,-S参数失效 [环境描述] mysql5.5.14 [问题描述] 配置了多实例 实例1 实例2 datadi ...

  4. mysql常见面试题及答案_MySQL常见面试题与答案整理

    1.MySQL 中有哪几种锁? 1.表级锁: 开销小, 加锁快: 不会出现死锁: 锁定粒度大, 发生锁冲突的概率最高, 并发度最低. 2.行级锁: 开销大, 加锁慢: 会出现死锁: 锁定粒度最小, 发 ...

  5. mysql什么情况会加意向锁_MySQL中的锁4-插入意向锁和自增锁

    插入意向锁(Insert Intention Lock) 插入意向锁本质上可以看成是一个Gap Lock 普通的Gap Lock 不允许 在 (上一条记录,本记录) 范围内插入数据 插入意向锁Gap ...

  6. mysql load会锁表吗_Mysql必读MySQL中由load data语句引起死锁的解决案例

    <MysqL必读MysqL中由load data语句引起死锁的解决案例>要点: 本文介绍了MysqL必读MysqL中由load data语句引起死锁的解决案例,希望对您有用.如果有疑问,可 ...

  7. mysql 如何取消id自增长_mysql如何设置自增长id

    mysql设置自增长id的方法:首先创建好数据库,选择Create Table:然后在设计表字段的时候,id列最后一个参数AI即为自增长,勾选上即可. 本教程操作环境:windows7系统.mysql ...

  8. mysql id自动递增两个_MySQL双主一致性架构优化

    转自: MySQL双主一致性架构优化 - osc_avwazwuz的个人空间 - OSCHINA​my.oschina.net 一.双主保证高可用 MySQL数据库集群常使用一主多从,主从同步,读写分 ...

  9. 【C/C++17】_ooci.h,_ooci.cpp,_mysql.h,_mysql.cpp,_postgresql.h,_postgresql.cpp

    文章目录 1._ooci.h 2._ooci.cpp 3._mysql.h 4._mysql.cpp 5._postgresql.h 6._postgresql.cpp 1._ooci.h //con ...

最新文章

  1. 快速创建 shell脚本
  2. 三极管形象经典的理解
  3. 手游频繁崩溃”闪退”? 从程序上找原因
  4. .NET Core开发实战(第32课:集成事件:解决跨微服务的最终一致性)--学习笔记...
  5. 【吊炸天】TensorFlow什么的都弱爆了,强者只用Numpy搭建神经网络
  6. 白板推导系列Pytorch-支持向量机(SVM)
  7. android设备调用usb外置摄像头方法及案例
  8. Verilog -- 乘法器Booth算法
  9. 75.【JavaWeb-03】
  10. 移动云计算的四大特点
  11. 大学里的网络安全专业为什么没多少人就读?
  12. 让Android应用程序支持安装到SD卡(APP2SD)
  13. 如何用光盘映像文件重装服务器系统,最简单的重装系统方法,直接使用ISO镜像,U盘PE系统统统不需要!-光盘映像文件怎么安装...
  14. Mac M1 nvm install失败问题
  15. 个人站长的廉价劳动力
  16. maven项目打包报错Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default
  17. 【数据结构-学习笔记】算法的有穷性
  18. Mac 电脑启动的快捷键
  19. 按上下限范围分组_分组排列显规律—浅析质量工具直方图
  20. java税务系统,基于java的税务管理系统

热门文章

  1. POJ-1006 Biorhythms 中国剩余定理
  2. 纠结于ajax开发中 response的contentType 问题
  3. 做iOS开发的这2年:30而立投身iOS开发嫌晚?
  4. [转]showModalDialog()、showModelessDialog()方法使用详解
  5. 【Unity】2.11 了解游戏有哪些分类对你开阔思路有好处
  6. Linux网络服务之DNS(1)
  7. [转]C语言茶余饭后之if...else PK switch...case
  8. 威联通装linux百度网盘,威联通NAS使用百度云Docker教程,超简单!
  9. 【学习笔记】智能制造之精益思想
  10. 【测试】ABAP直连外部数据库