广告
返回顶部
首页 > 资讯 > 数据库 >如何解决mysql中auto_increment的问题
  • 544
分享到

如何解决mysql中auto_increment的问题

2024-04-02 19:04:59 544人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关如何解决Mysql中auto_increment的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql中的auto_increment

这篇文章将为大家详细讲解有关如何解决Mysql中auto_increment的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

mysql中的auto_increment的问题
 
今儿在逛时,发现一个看似很简单的问题,却引起了大家的广泛关注:
这是一道很早的面试题
 
一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,
再insert一条记录,这条记录的ID是18还是15 。  www.2cto.com  
答案:
如果表的类型是MyISAM,那么是18。 
因为MyISAM表会把自增主键的最大ID记录到数据文件里,重启MySQL自增主键的最大ID也不会丢失。 
如果表的类型是InnoDB,那么是15。 
InnoDB表只是把自增主键的最大ID记录到内存中,所以重启或者是对表进行OPTIMIZE操作,
都会导致最大ID丢失。 
自己也做了个实验,结果证实了上面的说法。真是惭愧啊,看似简单的问题自己也打错了。
[html]
> select * from test1;  
+----+-----------+  
| id | name      |  
+----+-----------+  
|  1 | 陈兵辉    |  
|  2 | chen      |  
|  3 | chen      |  
|  4 | chen      |  
|  5 | chen      |  
|  6 | chen      |  
|  7 | chen      |  
|  8 | chen      |  
|  9 | chen      |  
| 10 | chen      |  
| 11 | chen      |  
+----+-----------+  
11 rows in set (0.00 sec)  
    www.2cto.com  
mysql> delete from test1 where id in (10,11,9);  
Query OK, 3 rows affected (0.03 sec)  
  
mysql> show create table test1;  
 CREATE TABLE `test1` (  
  `id` int(11) NOT NULL auto_increment,  
  `name` varchar(10) default NULL,  
  PRIMARY KEY  (`id`)  
) ENGINE=InnoDB AUTO_INCREMENT=<span style="color:#ff0000;">12</span> DEFAULT CHARSET=utf8 |  
mysql> exit;  
Bye  
[root@fsailing1 ~]# service mysqld restart  
停止 MySQL:                                               [确定]  
启动 MySQL:                                               [确定]  
[root@fsailing1 ~]# mysql -uroot -p  
Enter passWord:  
Welcome to the MySQL monitor.  Commands end with ; or \g.  
Your MySQL connection id is 2  
Server version: 5.0.95 Source distribution  
Copyright (c) 2000, 2011,  and/or its affiliates. All rights reserved.  
  
oracle is a reGIStered trademark of Oracle Corporation and/or its  
affiliates. Other names may be trademarks of their respective  
owners.  
  
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  
  
mysql> use test;  
Reading table infORMation for completion of table and column names  
You can turn off this feature to get a quicker startup with -A  
  
Database changed  
mysql> show create table test1;  
| CREATE TABLE `test1` (  
  `id` int(11) NOT NULL auto_increment,  
  `name` varchar(10) default NULL,  
  PRIMARY KEY  (`id`)  
) ENGINE=InnoDB AUTO_INCREMENT=<span style="color:#ff0000;">9</span> DEFAULT CHARSET=utf8 |    www.2cto.com  
 
2,另外还有一个就是获取当前数据库表的自增字段数。
[html]
mysql> select last_insert_id();  
+------------------+  
| last_insert_id() |  
+------------------+  
|                0 |  
+------------------+  
1 row in set (0.00 sec)  
 
 
 

关于“如何解决mysql中auto_increment的问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: 如何解决mysql中auto_increment的问题

本文链接: https://www.lsjlt.com/news/71463.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解决mysql中auto_increment的问题
    这篇文章将为大家详细讲解有关如何解决mysql中auto_increment的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。mysql中的auto_increment...
    99+
    2022-10-19
  • 如何理解MySQL主从复制中关于AUTO_INCREMENT的奇怪问题
    今天就跟大家聊聊有关如何理解MySQL主从复制中关于AUTO_INCREMENT的奇怪问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 ...
    99+
    2022-10-19
  • MySql中如何解决ERROR 1366问题
    这篇文章主要介绍MySql中如何解决ERROR 1366问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! MySql的ERROR 1366 (HY000...
    99+
    2022-10-18
  • 如何解决mysql中workbench报错的问题
    这篇文章主要介绍如何解决mysql中workbench报错的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql 中workbench报错的解决办法:首先打开找到workbe...
    99+
    2022-10-18
  • 如何解决MySQL的幻读问题
    如何解决MySQL的幻读问题?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  1、MVCC快照,将历史数据存一份快照,在其...
    99+
    2022-10-18
  • 如何解决mysql远程访问的问题
    今天就跟大家聊聊有关如何解决mysql远程访问的问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。如果连接mySQL的时候出现'Host &...
    99+
    2022-10-18
  • 如何解决mac中mysql乱码问题
    这篇文章主要为大家展示了“如何解决mac中mysql乱码问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决mac中mysql乱码问题”这篇文章吧。 ...
    99+
    2022-10-19
  • MYSQL中文乱码问题如何解决
    这篇文章主要介绍了MYSQL中文乱码问题如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MYSQL中文乱码问题如何解决文章都会有所收获,下面我们一起来看看吧。一、乱码的原因: client客户端的编码不是...
    99+
    2023-07-02
  • MySQL如何解决幻读问题
    目录前言一、什么是幻读?二、幻读有什么问题?(1)需要单独解决(2)间隙锁引发的并发度三、如何解决幻读?三、总结前言   我们知道MySQL在可重复读隔离级别下别的事物提交的内容,是看不到的。而可提交隔离级别下是可以...
    99+
    2022-05-22
    MySQL 幻读
  • 如何解决mysql乱码问题
    小编给大家分享一下如何解决mysql乱码问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!  mysql的字符集支持(character set support)有两个方面:字...
    99+
    2022-10-19
  • 如何解决mysql性能问题
    这篇文章主要为大家展示了“如何解决mysql性能问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决mysql性能问题”这篇文章吧。 最近项目使用mys...
    99+
    2022-10-19
  • Mysql如何解决死锁问题
    这篇文章主要为大家展示了“Mysql如何解决死锁问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mysql如何解决死锁问题”这篇文章吧。 ...
    99+
    2022-10-19
  • 如何解决MySQL死锁问题
    这篇文章主要介绍“如何解决MySQL死锁问题”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何解决MySQL死锁问题”文章能帮助大家解决问题。1、什么是死锁死锁是并...
    99+
    2022-10-19
  • mysql如何解决并发问题
    mysql并发的解决方法优化sql语句优化代码中sql语句,应尽量避免全表扫描,在 where 及 order by 涉及的列上建立索引;并避免频繁创建和删除临时表,以减少系统表资源的消耗。添加缓存缓存适合读多写少更新频度相对较低...
    99+
    2022-10-09
  • 如何解决mysql行锁问题
    解决mysql行锁问题的方法打开mysql终端命令符窗口,根据以下步骤解决。查询是否锁表,代码:“show OPEN TABLES where In_use > 0;”查询进程,代码:“show processlist”,再...
    99+
    2022-10-17
  • 如何解决mysql编码问题
    解决mysql编码问题的方法更改数据库安装时的字符编码。打开mysql安装目录。找到my.ini文件,以记事本的方式打开。直接修改配置文件的字符编码为utf8,如:default-character-set=utf8character-se...
    99+
    2022-10-17
  • 如何解决MySQL使用中遇到的问题
    这篇文章给大家分享的是有关如何解决MySQL使用中遇到的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。sql_mode=only_full_group_by引起group b...
    99+
    2022-10-18
  • 如何解决Mysql中group by的排序问题
    小编给大家分享一下如何解决Mysql中group by的排序问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 类如 ...
    99+
    2022-10-19
  • 如何解决mysql中user表没有的问题
    这篇文章将为大家详细讲解有关如何解决mysql中user表没有的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 mysql user表没有...
    99+
    2022-10-19
  • 如何解决mysql insert乱码的问题
    问题介绍: 在mysql中插入中文乱码,或mysql中中文正常显示,但jsp在前台显示mysql中的中文时乱码。 解决方法: 进入mysql控制台,执行下面的命令即可: SET character_set_cli...
    99+
    2022-05-30
    mysql insert 乱码
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作