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

  1. alter table seq_test drop id;
  2.  
  3. alter table seq_test add id int not null auto_increment first,add primary key (id);
为AUTO_INCREMENT给予起始值
 
 
    从序列100数值开始
  1. create table seq_test02
  2. (
  3. id int not null auto_increment,
  4. primary key(id),
  5. name varchar(30) not null,
  6. date date not null,
  7. origin varchar(30) not null
  8. )engine=InnoDB auto_increment=100 charset=utf8;
  9.  
  10. insert into seq_test02(name,date,origin) select name,date,origin from seq_test;
  11. truncate table seq_test02;
    从序列500数值开始
  1. alter table seq_test02 auto_increment= 500;
  2.  
  3. insert into seq_test02(name,date,origin) select name,date,origin from seq_test limit 10;
  4.  
  5. mysql> select * from seq_test02;
  6. +-----+-------+------------+--------+
  7. | id | name | date | origin |
  8. +-----+-------+------------+--------+
  9. | 500 | Alex | 2018-01-01 | test|
  10. | 501 | Frank | 2018-05-01 | test |
  11. | 502 | Fred | 2018-05-01 | test |
  12. | 503 | Gxxx | 2018-05-01 | PCQ |
  13. | 504 | Xi | 2018-05-16 | PCQ |
  14. | 505 | Xi | 2018-05-16 | PCQ |
  15. | 506 | Xi | 2018-05-16 | PCQ |
  16. | 507 | Xi | 2018-05-16 | PCQ |
  17. | 508 | Xi | 2018-05-16 | PCQ |
  18. | 509 | Xi | 2018-05-16 | PCQ |
  19. +-----+-------+------------+--------+
  20. 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. 颤振错误:当前Flutter SDK版本为2.1.0-dev.0.0.flutter-be6309690f?

    我刚刚升级了我的扑动,升级后我无法在Android Studio上运行任何扑动项目.我收到此错误消息. The current Dart SDK version -dev.0.0.flutter-be ...

  2. flask框架下的jinja2模板引擎(2)(过滤器与自定义过滤器)

    flask框架下的jinja2模块引擎(1):https://www.cnblogs.com/chichung/p/9774556.html 这篇论文主要用来记录下 jinja2 的过滤器. 什么是过 ...

  3. Java多线程学习笔记(一)

    一 概述 一个进程只有一个至少会运行一个线程,Java中同样存在这样,在调用main方法的时候,线程又JVM所创建. package link.summer7c.test; public class ...

  4. Django基础之form操作

    Form表单的功能 自动生成HTML表单元素 检查表单数据的合法性 如果验证错误,重新显示表单(数据不会重置) 数据类型转换(字符类型的数据转换成相应的Python类型) Form相关的对象包括 Wi ...

  5. c# datarow[] 转换成 datatable, List<T> 转datatable

      c# datarow[] 转换成 datatable, List<T> 转datatable DdataRow[]转成Datatable private DataTable ToDat ...

  6. aspnetcore 认证相关类简要说明二

    能过<aspnetcore 认证相关类简要说明一>我们已经了解如何将AuthenticationOptions注入到我们依赖注入系统.接下来,我们将了解一下IAuthenticationS ...

  7. 6、tornado

    3反射(reflect) tornado是一款异步非阻塞高效的web框架 自定制session.form.auth,以及第三方ORM框架sqlachme

  8. August 08th 2017 Week 32nd Tuesday

    The very essence of romance is uncertainty. 浪漫的精髓就在于它充满种种可能. Romance is the glamour that can turn th ...

  9. July 28th 2017 Week 30th Friday

    If equal affection cannot be, let the more loving be me. 如果没有相等的爱,那就让我爱多一点吧. There is seldom equal a ...

  10. December 22nd 2016 Week 52nd Thursday

    The best hearts are always the bravest. 心灵最高尚的人,往往也是最勇敢的人. Keep conscience clear, don't let too many ...