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. Java多线程学习笔记(三)同步和异步

    首先是一段代码: public class HasSelfPrivateNum { public void addI(String username){ try { int num=0; if(use ...

  2. Xshell启动时显示丢失MSVCP110.dll

    重装系统,装完Xshell5启动时,出现丢失MSVCP110.dll文件 这种情况不要相信网上所说的什么下载“MSVCP110.dll”文件或者下载微软的vcredist 2012 这样没用 正确的姿 ...

  3. django从1.7升级到1.9后 提示:RemovedInDjango110Warning

    Django项目,把django从1.7升级到1.9后,大量报错.需要做如下修改. 1,修改urls.py: 在django1.9里,urls的配置不再支持字符串型的路由.需要先import,然后直接 ...

  4. 伪数组 arguments

    arguments代表的是实参.有个讲究的地方是:arguments只在函数中使用. (1)返回函数实参的个数:arguments.length 例子: fn(2,4); fn(2,4,6); fn( ...

  5. python----------闭包 、装饰器

    闭包: 就是内层函数对外层函数(非全局变量的)非全局变量的引用 def func(): name = '老人家' def func1(): print(name)#局部变量对全局变量的引用 因为并没有 ...

  6. golang 获取变量类型的字符串格式 列举变量类型

    fmt.Println(reflect.TypeOf(var)) switch xxx.(type){ case int:.... case float32:... case float64:... ...

  7. ORA-28001:口令已经失效

    Oracle11G创建用户时缺省密码过期限制是180天(即6个月),如果超过180天用户密码未做修改则该用户无法登录. 查看密码的有效期设置,LIMIT字段是密码有效天数. select * from ...

  8. Centos7 下编译 Openjdk8

    本文主要介绍如何在 Centos7 下编译 Openjdk8 源码,<深入理解java虚拟机>第二版网上好多 openjdk7 的帖子,编译 jdk8 和 7 还是有些差别的,比如大家经常 ...

  9. SQL查询含有%号的字段

    select * from EMS_ANNOUNCEMENT where 1=1  and title like '%\%%'  escape '\'

  10. Azure 负载均衡器的多个 VIP

    您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn. Azure 负载均衡器 ...