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. (C# Window Service) Verify that you have sufficient privileges to start system services

    写了个Windows Service, 用Wix 写了个Installer,编译通过,生成了msi 安装文件,但是安装的时候总是提示: Product: KingPro Service -- Erro ...

  2. Android解析WindowManagerService(二)WMS的重要成员和Window的添加过程

    前言 在本系列的上一篇文章中,我们学习了WMS的诞生,WMS被创建后,它的重要的成员有哪些?Window添加过程的WMS部分做了什么呢?这篇文章会给你解答. 1.WMS的重要成员 所谓WMS的重要成员 ...

  3. 路飞学城知识点3缓存知识点之二redis

    redis:支持的字符类型多,可以做持久化 memchache:只能存储到内存中,不能做持久化,仅支持字符串类型. 参考博客 redis安装服务端: github安装包 安装客户端: pip inst ...

  4. angular based app开发流程

    整理user story mock UI,生成满足上述user story的原型界面 根据上述UI,整理出data model(适用于后端和angular的数据模型) 后端CRUD开发,形成REST ...

  5. Windows Azure系列公开课 - 第二课:为什么选择Windows Azure(下)

    Windows Azure中有什么? |基础结构 Windows Azure能够根据您企业的需求提供最适合的基础结构,并且在业务发展或精简时能够根据变化的需求及时的做出改变.您可以将Windows A ...

  6. sequelize 学习之路

    如果你觉得Sequelize的文档有点多.杂,不方便看,可以看看这篇. 在使用NodeJS来关系型操作数据库时,为了方便,通常都会选择一个合适的ORM(Object Relationship Mode ...

  7. MySQL 8.0复制性能的提升(翻译)

    What’s New With MySQL Replication in MySQL 8.0 MySQL复制从问世到现在已经经历了多个年头,它的稳定性和可靠性也在稳步的提高.这是一个不停进化的过程,由 ...

  8. Hibernate学习---QBC_hibernate完整用法

    QBC(Query By Criteria) API提供了检索对象的另一种方式,它主要有Criteria接口.Criterion接口和Expresson类组成,它支持在运行时动态生成查询语句. Hib ...

  9. homebrew命令

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  10. keepalived安装文档

      安装依赖 su - root yum -y install kernel-devel* yum -y install openssl-* yum -y install popt-devel yum ...