MySQL表格中自增长主键AUTO_INCREMENT使用,实现序列的最简单的方式
 
创建一个AUTO_INCREMENT自增的表
mysql> create table seq_test(
-> id int not null auto_increment,
-> primary key(id),
-> name varchar(30) not null,
-> date date not null,
-> origin varchar(30) not null
-> )
-> ;
Query OK, 0 rows affected (0.02 sec) mysql> insert into seq_test(id,name,date,origin)
-> values(null,'Alex','2018-01-01','test'),
-> (null,'Frank','2018-05-01','test'),
-> (null,'Fred','2018-05-01','test'),
-> (null,'Gxxx','2018-05-01','PCQ')
-> ;
Query OK, 4 rows affected (0.00 sec)
Records: 4 Duplicates: 0 Warnings: 0 mysql>
mysql> select * from seq_test;
+----+-------+------------+--------+
| id | name | date | origin |
+----+-------+------------+--------+
| 1 | Alex | 2018-01-01 | test |
| 2 | Frank | 2018-05-01 | test |
| 3 | Fred | 2018-05-01 | test |
| 4 | Gxxx | 2018-05-01 | PCQ |
+----+-------+------------+--------+
4 rows in set (0.00 sec)
 
PHP中使用mysqli_insert_id()函数来获取当前插入的序列值
 
[root@t-xi-oracle01 html]# cat mysqli_select_seq.php
<?php
$dbhost='localhost';
$dbuser='root';
$dbpass='mysql';
$conn=mysqli_connect($dbhost,$dbuser,$dbpass);
if(! $conn)
{
die('Database Connect Failure.' .mysqli_error($conn)); }
echo 'Database Connect Successful.<br />'; mysqli_query($conn,"set names utf8"); $sql_insert='insert into seq_test(name,date,origin) values("Xi","2018-05-16","PCQ")'; mysqli_select_db($conn,'runoob'); mysqli_query($conn,$sql_insert); $seq = mysqli_insert_id($conn); $sql = "select * from seq_test where id= $seq ";
$retval= mysqli_query($conn,$sql); if (! $retval)
{
die('Select Data Failure.' .mysqli_error($conn));
} echo '<h3>Show Data List</h3>';
echo '<table border="1"> <tr><td>ID</td><td>Name</td><td>Date</td><td>Origin</td><tr>'; while($row=mysqli_fetch_array($retval,MYSQLI_NUM))
{
echo "<tr><td>{$row[]}</td>".
"<td>{$row[]}</td>".
"<td>{$row[]}</td>".
"<td>{$row[]}</td>".
"</tr>"; }
echo '</table>';
mysqli_free_result($retval);
mysqli_close($conn); ?>
 
 
 
对现有AUTO_INCREMENT列进行重置
 

alter table seq_test drop id;

alter table seq_test add id int not null auto_increment first,add primary key (id);
为AUTO_INCREMENT给予起始值
 
 
    从序列100数值开始
create table seq_test02
(
id int 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; insert into seq_test02(name,date,origin) select name,date,origin from seq_test;
truncate table seq_test02;
    从序列500数值开始
alter table seq_test02 auto_increment= 500;

insert into seq_test02(name,date,origin) select name,date,origin from seq_test limit 10;

mysql> select * from seq_test02;
+-----+-------+------------+--------+
| id | name | date | origin |
+-----+-------+------------+--------+
| 500 | Alex | 2018-01-01 | test|
| 501 | Frank | 2018-05-01 | test |
| 502 | Fred | 2018-05-01 | test |
| 503 | Gxxx | 2018-05-01 | PCQ |
| 504 | Xi | 2018-05-16 | PCQ |
| 505 | Xi | 2018-05-16 | PCQ |
| 506 | Xi | 2018-05-16 | PCQ |
| 507 | Xi | 2018-05-16 | PCQ |
| 508 | Xi | 2018-05-16 | PCQ |
| 509 | Xi | 2018-05-16 | PCQ |
+-----+-------+------------+--------+
10 rows in set (0.00 sec)
 

MySQL->AUTO_INCREMENT[20180516]的更多相关文章

  1. [MySQL] AUTO_INCREMENT lock Handing in InnoDB

    MySQL AUTO_INCREMENT lock Handing in InnoDB 在MySQL的表设计中很普遍的使用自增长字段作为表主键, 实际生产中我们也是这样约束业务开发同学的, 其中的优势 ...

  2. 验证:mysql AUTO_INCREMENT 默认值是1

    用mongodb时,有些字段需要做自增,而且是用二十进制字母表示(使用a-t对应0-19),做了一个_auto_increment字段用来保存,但是应该从0开始还是从1开始呢? 和mysql保持一致便 ...

  3. MySQL Auto_Increment属性应用

        我们经常要用到唯一编号,以标识记录.在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成.MySQL支持多种数据表,每种数据表的自增属性都有差异,这里将介绍各种数据表里的数据 ...

  4. MySQL auto_increment的坑

    背景: Innodb引擎使用B_tree结构保存表数据,这样就需要一个唯一键表示每一行记录(比如二级索引记录引用). Innodb表定义中处理主键的逻辑是: 1.如果表定义了主键,就使用主键唯一定位一 ...

  5. MySQL AUTO_INCREMENT 简介

    可使用复合索引在同一个数据表里创建多个相互独立的自增序列,具体做法是这样的:为数据表创建一个由多个数据列组成的PRIMARY KEY OR UNIQUE索引,并把AUTO_INCREMENT数据列包括 ...

  6. MySQL AUTO_INCREMENT 学习总结

    之前有碰到过开发同事指出一张InnoDB表的自增列 AUTO_INCREMENT 值莫明的变大,由于这张表是通过mysqldump导出导入的. 问题排查: 1.首先,查看表表义的sql部分的 auto ...

  7. Mysql auto_increment总结

    一.为什么InnoDB表要建议用自增列做主键 我们先了解下InnoDB引擎表的一些关键特征: InnoDB引擎表是基于B+树的索引组织表(IOT): 每个表都需要有一个聚集索引(clustered i ...

  8. MySQL auto_increment介绍 以及 查询和修改auto_increment的方法

    一.auto_increment使用方法 .创建table时设置auto_increment属性和初始值100 create table nonove ( id bigint unsigned not ...

  9. MySql: AUTO_INCREMENT

    首先要在Column使用AUTO_INCREMENT (每张表只有一个列可以AUTO_INCREMENT): 以下示例取自MySql官网(http://dev.mysql.com/doc/refman ...

  10. MySQL auto_increment实现

    http://www.cnblogs.com/xpchild/p/3825309.html 运维的时候,经常遇到auto_increment的疑惑: 机器异常crash,重启后id回退的问题 性能考虑 ...

随机推荐

  1. Android踩坑随笔Fragment中onActivityResult方法不被调用

    最近项目里要做头像功能,参考了这篇博客(GitHub - zhudfly/SelectAvatarApplication: 一个选择并显示头像圆形控件,可以通过拍照或者选择相册中的图片来设置图片),但 ...

  2. Spring IOC (DI-依赖注入)

    看到一篇文章,讲Spring的依赖注入讲的很好理解,也很容易理解,非常详细.原文地址: https://blog.csdn.net/javazejian/article/details/5456130 ...

  3. HTML5-入门。

    什么是HTML5? HTML5是超文本语言,不是编程语言,html5是html语言的最新版本,需要注意浏览器的兼容性问题. HTML5技术一般是指的是HTML5.CSS3.JavaScript三种技术 ...

  4. Linux下top命令监控性能状态

    1.性能分析因素:CPU.内存.网络.磁盘读写 2.系统对应的应用类型主要分为以下两种: IO Bound:一般都是高负荷的内存使用以及存储系统,IO范畴的应用就是一个大数据处理的过程:通常数据库软件 ...

  5. 爬虫IP被禁的简单解决方法——切换UserAgent

    [转载]Python爬虫之UserAgent 用到的库 https://github.com/hellysmile/fake-useragent

  6. Linux入门-9 软件管理基础(CentOS)

    0. 源代码形式 1. RPM软件包管理 RPM RPM查询 RPM验证 2. YUM软件管理 YUM基本命令 YUM查询 创建YUM仓库 0. 源代码形式 绝大多数开源软件都是直接以源代码形式发布 ...

  7. Java学习---MD5加密算法

    前言 在我们日常的程序开发中,或多或少会遇到一些加密/解密的场景,比如在一些接口调用的过程中,我们(Client)不仅仅需要传递给接口服务(Server)必要的业务参数,还得提供Signature(数 ...

  8. OSG3.0.1的编译

    在OSG-中国有很多关于OSG的资料,包括OSG的编译和教程. 要编译OSG首先需要准备的包: 1,OSG3.0.1源代码: 2,CMAKE: 3,OSG用到的第三方库: 4,OSG Data:OSG ...

  9. LAMP配置NFS页面共享,autofs实现挂载,DNS实现名称解析,纯手动操作

    0.实验架构: 共6台服务器 分工如下: 服务器 职责 IP地址 Centos版本 描述 A DNS 172.18.7.70 7 B Apache 172.18.7.71 7 httpd+php-fp ...

  10. Http协议入门:

    HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点. 转自:http://www.ruanyifeng.com/blog/2016/08/http. ...