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. Install Java JDK JRE on Ubuntu/Debian with Apt-Get

    Introduction As a lot of articles and programs require to have Java installed, this article will gui ...

  2. 网络虚拟化技术 -- LXC TUN/TAP MACVLAN MACVTAP

    Linux的网络虚拟化是LXC项目中的一个子项目,LXC包括文件系统虚拟化,进程空间虚拟化,用户虚拟化,网络虚拟化,等等 [ LXC内核命名空间 ],这里使用LXC的网络虚拟化来模拟多个网络环境. 创 ...

  3. Attribute+Reflection,提高代码重用

    这篇文章两个目的,一是开阔设计的思路,二是实例代码可以拿来就用. 设计的思路来源于<Effective c#>第一版Item 24: 优先使用声明式编程而不是命令式编程.特别的地方是,希望 ...

  4. 常用sql commands以及mysql问题解决日志

    mysql workbench常用命令快捷键 ctrl+T ->创建新的sql query tab ctrl+shift+enter->执行当前的sql命令 https://dev.mys ...

  5. ls 操作命令 -l/-R和rm -r dir 功能实现

    ls -R #include <sys/stat.h> #include <dirent.h> #include <fcntl.h> #include <st ...

  6. 【Leetcode】【Medium】Add Two Numbers

    You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...

  7. js字符串和数组

    sustr  substring  slice的联系与区别 str.substr(2,5) //从索引2开始截取5个字符,原有字符串str不变 str.substring(2,5) //从索引2开始截 ...

  8. BZOJ 1084 最大子矩阵 dp

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1084 题目大意: 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分 ...

  9. BZOJ 1059 矩阵游戏 二分图匹配

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1059 题目大意: 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏 ...

  10. z-index终结者

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/30280627         z-in ...