关于mysql自增id的获取和重置

2023-05-16

转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)


mysql获取自增id的几种方法

  • 使用max函数:select max(id) from tablename
    • 优点:使用方便快捷。
    • 缺点:获取的不是真正的自增id,是表中最大的Id,如果有删除数据的话,那么该值和自增id相差比较大。如果有连表数据,有可能导致数据错乱。
  • 使用LAST_INSERT_ID函数:select LAST_INSERT_ID()
    • 优点:获取到的是真正的自增id。
    • 缺点:该函数是与table无关的,永远保留最新插入的自增列的id。如果多客户端操作,而且不能保证原子性,这个值可能会出现错误。所以需要在插入之后调用。
  • 使用@@IDENTITY变量:select @@IDENTITY
    • 此方法和LAST_INSERT_ID()功能差不多,优缺点也一致。需要在插入后调用。
  • 使用mysql查询函数:SHOW TABLE STATUS;
    • 优点:能够准确的查到自增id。而且可以在语句后面加上where语句或者like语句来过滤。
    • 缺点:该语句返回的是一个记录集,不能单独的返回自增值。所以需要额外的操作来获取。
  • 使用自定义查询方法:mysql表相关的信息是放在information_schema表里。所以我们参考 SHOW TABLE STATUS来构建查询语句。如:
    • select Auto_increment into autoId from information_schema.tables where Table_Schema = ‘dbname’ and table_name = ‘tablename’;
    • 优点:高度自定义,能够准确的得到想得到的任何信息。
    • 确定:不容易记住。呵呵。

mysql自增id的重置

  • 使用truncate:truncate table;
    • 说明:使用truncate会删除表的数据释放空间,并且重置字自增id,但不会删除表的定义。
    • 用处:需要清空表的时候才能使用。
  • 使用修改标识:dbcc checkident (‘table_name’ , reseed, new_reseed_value) ;
    • 说明:new_reseed_value是设置的当前标识,下次插入则从new_reseed_value+1开始。如果new_reseed_value小于表中当前标识的值,有可能会产生重复key,会产生 2627 号错误信息。
    • 用处:此方法不会清空已有数据。适用于大量删除后修改新的标识,但不能比当前表中最大值小。
  • 使用修改表的方法:alter table tablename auto_increment=new
    • 说明:此方法和上面的二方法类似。也不会清空数据,有可能会出现重复key的可能,所以此方法也只适用于清空表之后重置自增id或者大量删除后修改自增id。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于mysql自增id的获取和重置 的相关文章

  • db:schema:load 与 db:migrate 使用 capistrano

    我有一个 Rails 应用程序 我正在将其移动到另一台服务器 我认为我应该使用 db schema load 来创建 mysql 数据库 因为这是推荐的 我的问题是我正在使用 capistrano 进行部署 并且它似乎默认为 rake db
  • 即使没有结果也返回一个值

    我有这种简单的查询 它返回给定 id 的非空整数字段 SELECT field1 FROM table WHERE id 123 LIMIT 1 问题是如果找不到 id 结果集就是空的 我需要查询始终返回一个值 即使没有结果 我有这个东西工
  • PHP 和 MySQL - 高效处理多个一对多关系

    我正在寻求一些有关使用 MySQL 和 PHP 检索和显示数据的最佳方法的建议 我有 3 个表 所有一对多关系如下 Each SCHEDULE有很多覆盖每个覆盖都有很多地点 我想检索这些数据 以便它可以全部显示在单个 PHP 页面上 例如列
  • 在 jQuery AJAX 成功中从 MySql 获取特定响应

    好吧 我有这个 ajax 代码 它将在 Success 块中返回 MySql 的结果 ajax type POST url index php success function data alert data My Query sql SE
  • PHP MySql 百分比

    我的问题是关于百分比 我不是专家 所以我会尽力以更好的方式进行解释 我的 mysql 服务器中有一个表 假设有 700 条记录 如下所示 Name country language Birth Lucy UK EN 1980 Mari Ca
  • 将庞大数据库从亚马逊RDS导出到本地mysql

    我在 Amazon RDS 上有一个 mysql 数据库 大约 600GB 数据 我需要将其移回本地专用服务器 但我不知道从哪里开始 每次我尝试初始化 sqldump 时它都会冻结 有没有办法将其移至 S3 甚至可能在开始下载之前将其分成更
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。添加了 11 条消息列表。使用emitter.setMaxListeners()来增加限制

    我知道这可能会标记为重复的解决方案 但堆栈溢出的解决方案对我不起作用 Problem node 5716 MaxListenersExceededWarning Possible EventEmitter memory leak detec
  • 如何通过Elasticsearch模糊匹配电子邮件或电话?

    我想通过 Elasticsearch 对电子邮件或电话进行模糊匹配 例如 匹配所有以以下结尾的电子邮件 gmail com or 匹配所有电话开头136 我知道我可以使用通配符 query wildcard email gmail com
  • MySQL 追加字符串

    How can I append a string to the end of an existing table value Let s say I have the table below And let s say that Mari
  • 从Django中具有外键关系的两个表中检索数据? [复制]

    这个问题在这里已经有答案了 This is my models py file from django db import models class Author models Model first name models CharFie
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • SELECT NULL、*、NULL、NULL 中令人困惑的 SQL 错误

    的背景我试图解决第四个现实任务 https www hackthissite org playlevel 4 在 hackthissite org 中 无法确切地弄清楚我应该在 URL 中注入什么 SQL 来检索电子邮件列表 浪费了几个小时
  • 从前端更改记录顺序

    我在编写下一个功能时遇到问题 我希望用户能够重新排列记录并更改 display order 值 我使用 Jquery UI 的可拖放功能来促进这一点 我可以看到如何简单地交换 display order 值 但我想为一条记录设置一个显示顺序
  • mysql 版本号排序

    我有这样的价值观 1 1 2 9 1 2 2 4 1 2 3 4 3 2 14 3 2 1 4 2 我需要使用 mysql 对这些值进行排序 该数据类型是 varbinary 300 所需的输出将类似于 1 1 2 1 2 3 4 2 2
  • 删除连接中不存在的记录

    想象两个表 A 和 B A B 1 2 2 3 6 5 4 7 9 11 13 23 9 现在我想从 A 中删除 B 中不存在的记录 例如从 A 中删除 1 6 和 4 我最初的想法是您可以 否定 联接的结果 DELETE FROM A W
  • 加载“mysql2”Active Record 适配器时出错

    我正在尝试升级我的应用程序 这是我在部署应用程序时遇到的错误 加载 mysql2 Active Record 适配器时出错 缺少它所依赖的宝石 无法激活mysql2 0 4 4 已经激活mysql2 0 3 21 确保所有依赖项都添加到 G
  • 使用 order by 和 limit 从多个表中删除

    我试图从使用 ORDER BY DESC 和 LIMIT 有关系的两个表中删除 DELETE FROM my rel table AS t1 LEFT JOIN my photo table AS t2 ON t2 typeid t1 ty
  • 在查询中创建临时变量

    我希望能够在查询中创建一个临时变量 而不是存储过程或函数 它不需要声明和设置 这样我在调用它时就不需要传递查询参数 正在努力朝这个方向努力 Select field1 tempvariable 2 2 newlycreatedfield t

随机推荐

  • 蓝牙演进及其发展史

    关注 43 星标公众号 xff0c 不错过精彩内容 来源 ittbank 目前 xff08 2023年5月 xff09 xff0c 最新的蓝牙5 4标准已经出来了 xff0c 那么 xff0c 你知道蓝牙这些年都经历过什么吗 xff1f 下
  • 嵌入式固件升级防变砖的几种方法

    关注 43 星标公众号 xff0c 不错过精彩内容 来源 CSDN 汽车软件Boot程序的主要作用是刷新App程序 在一个具体客户项目中 xff0c Boot也是客户需求的一部分 xff0c 跟随项目也有软件开发计划 xff08 有的为了和
  • 单片机变量不被初始化的实现方法

    关注 43 星标公众号 xff0c 不错过精彩内容 作者 strongerHuang 微信公众号 strongerHuang 最近有读者问了一个这样的问题 xff1a 看门狗复位之后 xff0c 能不能保持复位之前的状态 xff1f 这种问
  • 新手学51还是STM32单片机?

    更多视频 xff0c 可以到我视频号查看 xff1a 点击 阅读原文 查看更多分享
  • SPI可以像I2C挂多个设备吗?

    关注 43 星标公众号 xff0c 不错过精彩内容 作者 strongerHuang 微信公众号 strongerHuang 最近看到有小伙伴在讨论 xff1a SPI可以像I2C挂多个设备吗 xff1f 简单来说 xff0c 就是一主多从
  • Keil(MDK-ARM)介绍、下载、安装与注册

    推荐 分享一个大神的人工智能教程 零基础 xff01 通俗易懂 xff01 风趣幽默 xff01 还带黄段子 xff01 希望你也加入到人工智能的队伍中来 xff01 http www captainbed net strongerhuan
  • STM32CubeMX介绍、下载与安装

    推荐 分享一个大神的人工智能教程 零基础 xff01 通俗易懂 xff01 风趣幽默 xff01 还带黄段子 xff01 希望你也加入到人工智能的队伍中来 xff01 http www captainbed net strongerhuan
  • Keil(C51)介绍、下载、安装与注册

    推荐 分享一个大神的人工智能教程 零基础 xff01 通俗易懂 xff01 风趣幽默 xff01 还带黄段子 xff01 希望你也加入到人工智能的队伍中来 xff01 http www captainbed net strongerhuan
  • 自顶向下,自底向上、三明治集成的方法。软件测试

    实验 四 实验名称 集成测试 实验日期 2018 11 30 实验成绩 实 验 目 的 要 求 及 内 容 xff08 给出本次实验所涉及并要求掌握的知识点及实验内容具体描述 xff09 实验目的 xff1a xff08 1 xff09 掌
  • 【零基础强化学习】 基于Closed-Form Policy Play BipedalWalker-v3

    BipedalWalker v3 x1f914 写在前面机器人行走控制show me code no bb结果展示写在最后谢谢点赞交流 xff01 96 更多代码 gitee主页 xff1a https gitee com GZHzzz 博
  • 电子爱好者总结的28个电子行业技术网站

    以下是一位电子爱好者总结的28个电子行业技术网站 21IC 电子 http www 21IC COM 中国电子资源网 xff1a http www ec66 com 中国电子进修网 http www studydz com 电子设计技术网
  • Linux 入门

    文章目录 一 概述二 安装CentOS下载地址VMware下载地址 三 linux文件与目录结构Linux系统中一切皆文件Linux目录结构 四 VI VIM 编辑器vi vim是什么一般模式常用语法键盘图编辑模式指令模式 五 网络配置六
  • S_OK,S_FALSE,E_FAIL

    今天在调试一个ICOP的操作的时候 xff0c 发现连接被动关闭的时候老是会在一处断言处失败 xff0c 跟了很久终于发现了问题 在此记录一下 xff1a 断言报错的代码如下 xff1a HRESULT CIoCPWorker UnregI
  • 游戏开发图书推荐--我读过的技术经典图书

    很多同学问我学游戏开发应该看些什么书 xff0c 我在这里抛砖引玉 xff0c 给一份推荐表 xff0c 希望大家共同提高 由于本人英文不太好 xff0c 推荐的大部书籍都是国人编写的 xff0c 有些经典的外文图书可能是翻译不好 xff0
  • Win7 应用程序无法正常启动(0xc000000d)的解决方法

    自从重装了WIN7系统后 xff0c VS2010编译出来的项目程序就不能正常启动 xff0c 启动的时候总是提示 应用程序无法正常启动 xff08 0xc000000d xff09 请单击 确定 关闭应用程序 在网上查找了很多解决方案 x
  • MySQL存储过程where条件执行失败的问题

    前几天对服务器实体做了属性缓存机制 xff0c 当时测试也没有出现大的问题 xff0c 昨天有人跟我说 xff0c 登陆的时候角色等级显示错误 xff0c 我复测了一下 xff0c 发现不只是等级错误 xff0c 进入游戏后角色位置 金钱
  • VS2010/VS2012 设置全局头文件和库路径

    在VS2010之前 xff0c 设置项目的全局头文件和库路径是非常方便的 xff0c 直接选择菜单Tools gt Options gt Projects and Solutions gt VC 43 43 Directories xff0
  • Linux下rz/sz安装及使用方法

    新搞的云服务器用SecureCRT不支持上传和下载 xff0c 没有找到rz命令 记录一下如何安装rz sz命令的方法 一 工具说明 在SecureCRT这样的ssh登录软件里 通过在Linux界面里输入rz sz命令来上传 下载文件 对于
  • 关于mysql存储过程创建动态表名及参数处理

    转载请注明出处 xff1a 帘卷西风的专栏 http blog csdn net ljxfblog 最近游戏开始第二次内测 xff0c 开始处理操作日志 xff0c 最开始把日志放到同一个表里面 xff0c 发现一天时间 xff0c 平均1
  • 关于mysql自增id的获取和重置

    转载请注明出处 xff1a 帘卷西风的专栏 http blog csdn net ljxfblog mysql获取自增id的几种方法 使用max函数 xff1a select max id from tablename 优点 xff1a 使