关于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的获取和重置 的相关文章

  • 在数据库中存储差异的最紧凑方式是什么?

    我想实现类似于维基媒体的修订历史的东西 最好使用的 PHP 函数 库 扩展 算法是什么 我希望差异尽可能紧凑 但我很高兴只能显示每个修订版与其同级修订版之间的差异 并且一次只能回滚一个修订版 在某些情况下 只有几个字符可能会发生变化 而在其
  • mysql - 有什么方法可以帮助使用另一个索引进行全文搜索?

    假设我有一个 文章 表 其中包含以下列 article text fulltext indexed author id indexed 现在我想搜索特定作者撰写的文章中出现的术语 所以像这样 select from articles whe
  • 如何在SQL中查找单元格中的重复单词

    我有一个名为 situation 和 entityid 的列 Entityid Situation 1234 In the the world of of 3456 Total universe is is a 任何人都可以给我查询以找到这
  • 在 ADO 查询 (mysql/MyConnector) 中使用参数

    今天我下载并安装了 MyConnector 这样我就可以通过 ADO 使用 Mysql 一切都安装好了 我可以与 ODBC 连接并从我的 delphi 环境进行连接 当我在运行时构建查询时 我收到一条错误消息 项目 Project1 exe
  • 在旧版本的 MySQL (<5.5.0) 中模拟 TO_SECONDS()

    出于性能和简单性的原因 我想以秒的形式获取 MySQL 3 x 服务器中 DATETIME 列的内容 或者实际上任何数字类型 我只是想在使用 UNIX TIMESTAMP 时避免所有明显的时区问题 the我表中的日期确实来自不同的区域设置
  • 将 php filter_var 与 mysql_real_escape_string 结合使用

    我想首先说 我意识到 PDO mysqli 是新标准 并且已被 SO 广泛覆盖 然而 在这种特殊情况下 我没有时间在启动客户端站点之前将所有查询转换为 PDO 以下内容已在网站上的大多数查询中使用 我可以补充一下 这不是我所使用的 user
  • 启动服务器后,带有sequelize的Nodejs无法在mysql工作台中创建表

    我开始学习如何使用构建 Rest APINodejs Expressjs Sequelize and MySQL using Mysqlworkbench 我的问题 启动服务器后 该表不是由Sequelize并且没有表Mysqlworkbe
  • 如何获取共同好友列表

    你好 我想知道如何才能找到共同的朋友 我目前在思考这个问题时遇到问题 我有一个名为 users 的表 它是这样的 id name 1 Kenny 2 Jack 3 Jimmy 4 Chris 5 Meg 6 Jake 7 Micheal 8
  • 主机 localhost 不允许连接到此 MySQL 服务器 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我不小心删除了我的用户表 删除了所有用户 现在每当我尝试访问我的数据库时 它都会说 主机本地主机不允许连接到此 MYSQL 服务器 我试过
  • 哈希 MySQL 数据库架构

    我想对 MySQL 数据库模式 没有数据 进行哈希 签名 以便对其进行校验和 以确保它不被其他人修改 我怎样才能实现它 据我了解您的问题 您需要表校验和 checksum table table 所以 我想 只需对空表进行校验和
  • mysql 使用什么样的哈希?

    我正在编写类似于 phpMyAdmin 的自己的代码 但我需要用户能够使用 mysql 数据库中的用户名和密码登录 我需要知道mysql数据库使用什么样的哈希来存储每个用户的密码 我检查了 dev mysql com 寻找答案 但除了以 开
  • 使用 PHP 将文件上传到 MySql DB

    我希望用户通过我在后端使用 MySql 用 PHP 开发的 web 应用程序上传文件 我想将文件存储在数据库中 我在这样做时遇到了问题 此外 一旦文件存储在数据库中 我们如何下载它 并在 web 应用程序中正确显示它 文件类型和文件的其他属
  • 存储过程函数中的动态表名

    我编写了一个存储过程函数来从表中获取名称 问题是我希望将表名作为参数传入 有几个不同的表我需要使用此函数 DELIMITER CREATE DEFINER root localhost FUNCTION getName tableName
  • 为什么我在 WinForms 列表框中得到“System.Data.DataRowView”而不是实际值?

    每当我运行代码并尝试查看highscore我在列表框中得到的只是System Data DataRowView 谁能明白为什么吗 Code MySqlConnection myConn new MySqlConnection connStr
  • 将sql查询结果写入mysql中的文件

    我正在尝试使用 mysql 将查询结果写入文件 我在一些地方看到了有关 outfile 构造的一些信息 但似乎这只将文件写入正在运行 MySQL 的机器 在本例中是远程机器 即数据库不在我的本地机器上 或者 我还尝试运行查询并从 mysql
  • pyodbc 无法正确处理 unicode 数据

    我确实使用 pyodbc 成功连接了 MySQL 数据库 并且它可以很好地处理 ascii 编码的数据 但是当我打印使用 unicode utf8 编码的数据时 它引发了错误 UnicodeEncodeError ascii codec c
  • Wordnet sqlite 同义词和示例

    我正在尝试获取给定 wordid 的同义词和示例列表 经过大量的试验和错误 我可以获得所有同义词集的样本 但不是实际的同义词 这是我的查询 它给出了以下结果 select senses wordid senses synsetid sens
  • 如何查找所有mysql表之间的所有关系?

    如何找到MySQL所有表之间的所有关系 例如 如果我想知道大约有 100 个表的数据库中表的关系 有什么办法知道这个吗 从编程角度来说 更好的方法是从以下位置收集数据 INFORMATION SCHEMA KEY COLUMN USAGE表
  • 如何限制两个表之间一对多关系中的多个数量?

    我有一个带有两个 MySql 表的 MySQL 数据库 第一个是第一个表 表 A 有一列具有唯一值 从值 从 1 到 n 在第二个表 2 表 B 中 我有两列 在第一个表中我有一个名称 在第二个我的值从 1 到 n 如果我在 中添加一个值
  • mysql_query 保留返回时在表中创建的数据类型?

    我在mysql中有一个表 CREATE TABLE user id INT name VARCHAR 250 我查询表 result mysql query SELECT id name FROM user 我收集结果 while row

随机推荐

  • 百度2014校园招聘-研发工程师笔试题(济南站)

    一 xff0c 简答题 30分 1 xff0c 当前计算机系统一般会采用层次结构存储数据 xff0c 请介绍下典型计算机存储系统一般分为哪几个层次 xff0c 为什么采用分层存储数据能有效提高程序的执行效率 xff1f xff08 10分
  • 生产者消费者模式代码实现

    生产者消费者模式 xff1a 不同种类的线程间针对同一个资源的操作 问题 xff1a A xff1a 如果消费者先抢到cpu的执行权 xff0c 就会去消费数据 xff0c 但是现在的数据是默认值 xff0c 没有意义 xff0c 应该等着
  • 转载 本机运行x程序出现:Can't open display 原因及其解决方法

    在Linux Unix类操作系统上 DISPLAY用来设置将图形显示到何处 直接登陆图形界面或者登陆命令行界面后使用startx启动图形 DISPLAY环境变量将自动设置为 0 0 此时可以打开终端 输出图形程序的名称 比如xclock 来
  • 另一种root方法,Android boot.img破解

    一 破解原理 nbsp nbsp nbsp Android手机获得Root权限 其实就是让 system和 data分区获得读写的权限 这两个分区的权限配置 一般在根分区的init rc文件中 修改这个文件可永久获得root权限 众所周知
  • BPMN基础元素及任务类型

    01 BPMN定义 BPMN xff08 Business Process Modeling Notation xff0c 即业务流程建模符号 xff09 xff0c 是一种流程建模的通用和标准语言 xff0c 用来绘制业务流程图 xff0
  • Python 程序出现ImportError: cannot import name 'is_string_like' 解决办法

    今天的一个project写了如下代码 xff1a from skimage import os xff0c transform 运行后报错 xff1a from matplotlib cbook import is string like
  • ASP.NET中主题的创建和应用

    1创建ASP NET网站 模板 gt 选择 添加ASP NET文件夹 下面的属性 xff0c 将主题名改为 xff1a mytheme xff1b 添加新建项选择 外观文件 xff0c 命名为TextBox 双击TextBox skin文件
  • canvas画波形图

    最近公司要在浏览器上加个波形图 xff0c 本人搞C 43 43 的 xff0c 不会html5 xff0c 在网上搜了半天没找到一个例子 xff0c 只好自己研究了 郁闷啊 画这个图主要用到html5的canvas xff0c 不多说 x
  • layer 弹框 cropper 裁剪上传图片,thinkphp 3 使用 CropAvatar.class.php

    最近要做一个上传裁剪图片功能 xff0c 但是网上收出来的东西 xff0c 知识点都是对的 但是就是没说清楚 xff0c 也无法连续起来用 经过自己整理出来的一套代码 xff0c 亲测可用 xff01 不用多说 xff0c 直接上菜 PS
  • 解决mysql登录出现10061的问题

    问题出现的原因 xff1a 可能是系统自动关闭了mysql服务的运行 解决方法 xff1a 任务管理器 文件 运行新任务 services msc 找到mysql 启动即可成功 任务管理器 文件 运行新任务 services msc 找到m
  • Archlinux配置邮件(以qq邮箱为例)

    Archlinux配置邮件 以qq邮箱为例 安装s nail span class token function sudo span pacman S s nail 配置SMTP发送邮件 开启IMAP SMTP服务 打开qq邮箱网页版 gt
  • 电子爱好者总结的28个电子行业技术网站

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

    今天在调试一个ICOP的操作的时候 xff0c 发现连接被动关闭的时候老是会在一处断言处失败 xff0c 跟了很久终于发现了问题 在此记录一下 xff1a 断言报错的代码如下 xff1a HRESULT CIoCPWorker UnregI
  • Win7 应用程序无法正常启动(0xc000000d)的解决方法

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

    前几天对服务器实体做了属性缓存机制 xff0c 当时测试也没有出现大的问题 xff0c 昨天有人跟我说 xff0c 登陆的时候角色等级显示错误 xff0c 我复测了一下 xff0c 发现不只是等级错误 xff0c 进入游戏后角色位置 金钱
  • 程序员与厨师

    不管你信不信 反正我是信了 每一个程序员上辈子都是呆在厨房的厨子 好吧 你不信 我来证明给你看 1 下厨前 你得知道做的是早餐还是中晚餐 中晚餐的话 怎么也得走趟超市 如遇到好友聚会 怎么着也得做出一桌对得起朋友的饭菜 还有你得分析 朋友中
  • 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 使