关于自增约束auto_increment需要注意的地方,mysql8版本的报错

news2024/11/17 3:48:26

目录

  • 一,自增约束auto_increment需要注意的地方
      • 附:就算插入数据失败,也进行自增:
  • 二,自增约束auto_increment在MySQL8版本的报错:

一,自增约束auto_increment需要注意的地方

1 创建数据库表class:(这里使用的是mysql8版本)
在这里插入图片描述
2 数据库表class的信息描述:
在这里插入图片描述
3 在数据库表class中,插入数据:
在这里插入图片描述
根据错误提示,可以看到,第二次插入数据失败!
4 查看表class中的数据:

在这里插入图片描述
5 再次插入数据,并查看表class:
在这里插入图片描述
可以看出,这幅图片中,第一次插入时,格式错误。其他两次插入成功!
6 插入数据100,之后再次进入自增插入数据:

在这里插入图片描述
可以看出,插入数据100之后,自增是从100开始的!
7 插入数据10之后,再进行自增,之后又进行一次自增:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可以看出,自增不是从10开始的,而是从101开始的。由此可以得知,自增是从原本表格中自增字段的最大值开始的
8 删除自增字段的最大值,再进行自增:

在这里插入图片描述
在这里插入图片描述
可以看出,就算删除最大值103,新插入的数据还是从103开始自增!!!

附:就算插入数据失败,也进行自增:

1>创建数据库表:
在这里插入图片描述
2>插入数据:
在这里插入图片描述
可以看出,第二次插入数据失败,然而第三次插入的数据竟然从101开始自增!!!插入失败都可以自增,这真是厉害了!
3>但是以下这发生两种错误时,插入失败之后,并没有进行自增:
在这里插入图片描述
总结:第一次插入数据发生错误,可以进行自增。而之后两次发生错误,却不能进行自增的原因:
第一次发生错误时,错误的原因是,字段name进行了UNIQUE约束,这次插入的数据 ‘evan’ 与class_s表中的数据’evan’重复了。而进行自增的字段并没有发生错误,并且自增字段id是在字段name之前执行的。因此自增成功进行到101了!
第二次发生错误时,错误的原因是,自增的字段进行了PRIMARY KEY约束,这次插入的数据 102 与class_s表中的数据 102 重复了。错误发生在自增的字段上,自增失败!
第三次发生错误时,错误的原因是,插入语句insert into写成了insert in insert into,完整的错误语句为: insert in insert into class_s (name)values('tony');,可以看出,这条语句还没执行到自增的字段上,就因为发生错误停止执行了。自增的字段没执行,自增失败!

二,自增约束auto_increment在MySQL8版本的报错:

在这里插入图片描述
错误提示:ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
就是说含有auto_increment的字段,必须定义为键!!!
字段约束一共有三种键:PRIMARY KEY(主键), FOREIGN KEY(外键), UNIQUE(唯一键)。
下面是这三种键定义之后,成功建立数据库表的例子:
PRIMARY KEY(主键):
在这里插入图片描述
FOREIGN KEY(外键):
在这里插入图片描述
UNIQUE(唯一键):
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Logistic回归

通常,Logistic回归用于二分类问题,例如预测明天是否会下雨。当然它也可以用于多分类问题. Logistic回归是分类方法,它利用的是Sigmoid函数阈值在[0,1]这个特性。Logistic回归进行分类的主要思想是:根据现有数据对分类边界线建立回…

啊?我这手速也太差了吧?——C++Easyx“挑战六秒”小游戏

🐑本文作者:C橙羊🐑 🎮🔊本文代码适合编译环境:DEV-C💻 ✨🧨温馨提示:此文转载于codebus🎉🎠 最近橙羊在Easyx官网的codebus里随便逛逛的时候&am…

SpringMVC从入门到精通(一)

文章目录1. SpringMVC基本概念1.1 三层架构1.2 MVC架构1.3 什么是SpringMVC1.4 SpringMVC的优势2. SpringMVC 的入门2.1 入门程序2.2 SpringMVC执行原理刨析2.3 SpringMVC的核心执行流程2.4 SpringMVC的组件3. RequestMapping注解4.请求参数绑定4.1 参数绑定4.2 请求参数乱码问…

磨金石摄影技能干货分享|优秀纪实摄影作品欣赏—北京记事

1、蜂窝煤 三名青年男子踏着三轮车拉着满满一车蜂窝煤。脸上流露出清澈的笑容。这是九十年代的北京,背后的天安门格外的显眼。那时候处于改革开放的初期,虽然还不是很富裕,但大家脸上洋溢着幸福与希望的笑容。 蜂窝煤是冬天必备,九…

【强化学习论文合集】十一.2018国际表征学习大会论文(ICLR2018)

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

历届青少年蓝桥杯python编程选拔赛 STEMA评测比赛真题解析【持续更新 已更新至34题】

蓝桥杯python选拔赛真题 历届青少年蓝桥杯python编程选拔赛真题解析 选拔赛 真题34-回文数升级 【蓝桥杯选拔赛真题34】python回文数升级 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析_小兔子编程的博客-CSDN博客python回文数升级2020年青少年组python蓝桥杯选拔赛真题一、…

剑指Offer39——数组中出现次数超过一半的数字

摘要 剑指Offer39 数组中出现次数超过一半的数字 本题常见的三种解法: 哈希表统计法: 遍历数组 nums ,用 HashMap 统计各数字的数量,即可找出 众数 。此方法时间和空间复杂度均为 O(N) 。数组排序法: 将数组 nums 排…

Python学习-8.1.1 标准库(time库的基础与实例)

2.1 time库 time库是Python提供的处理时间标准库。time库提供系统级精确计时器的计时功能,可以用来分析程序性能,也可以让程序暂停运行时间。 2.1.1 时间处理函数 time.time()函数:获取当前时间戳。 代表着如今的时间与1970年1月1日0分0秒…

18.10 字节码指令集与解析举例 - 同步控制指令

同步控制指令 组成 java虚拟机支持两种同步结构:方法级的同步和方法内部一段指令序列的同步,这两种同步都是使用monitor来支持的。 方法级的同步 方法级的同步:是隐式的,即无须通过字节码指令来控制,它实现在方法调…

Java+SSM网上书城全套含微信支付电商购物(含源码+论文+答辩PPT等)

项目功能简介: 本项目含代码详细讲解视频,手把手带同学们敲代码从0到1完成项目 该项目采用技术Springmvc、Spring、MyBatis、Tomcat服务器、MySQL数据库 项目含有源码、配套开发软件、软件安装教程、项目发布教程以及代码讲解教程 项目功能介绍: 系统管理…

HTML做一个简单的页面(纯html代码)地球专题学习网站

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

STM32F4 | 新建工程模板——寄存器版本 | HAL库入门 | 新建工程模板——库函数版本

文章目录一、新建工程模板——寄存器版本二、HAL入门1.固件库和寄存器的区别2.STM32CubeF43.HAL库包介绍三、新建HAL库工程模板一、新建工程模板——寄存器版本 开发环境:MDK5软件包:STM32CubeF4包 新建工程模板的一般步骤为: 新建工程目录&a…

【UE5】多用户协同编辑

UE5新出了一个多用户协同功能所以想搭一个来玩玩。 Epic已经将流程极度的简化了,在B站虚幻官方也放出了教程视频,[官方文档](多用户编辑入门 | 虚幻引擎文档 (unrealengine.com))也有教程。 这里做一下简要记录。 1.启用插件 首先打开Multi-User Edi…

SoftPerfect NetWorx中管理流量和宽带设备工具

SoftPerfect NetWorx中管理流量和宽带设备工具 NetWorx是用于在Windows中管理流量和宽带设备的简单工具和实用程序。如果我们利用交通设施,毫不拖延地利用教育系统,以及与各种驾驶员相关的学习,那么当加载互联网时,通过软件秘密使…

[附源码]计算机毕业设计酒店客房管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

BaiqiSoft MstHtmlEditor for .NET负责编辑的控制器

BaiqiSoft MstHtmlEditor for .NET负责编辑的控制器 BaiqiSoft MstHtmlEditor获取.NET for win表单被认为是一个元素,用户可以轻松灵活地将其融入到C#、VB.NET甚至WPF软件中。负责编辑的控制器,.NET Win Forms的MstHtmlEditor,允许用户和开发人员,甚至非技术用户使用该系列…

Docker入门第二期

写目一、宿主机与容器之间的文件拷贝二、数据卷三、数据卷容器四、Dockerfile一、宿主机与容器之间的文件拷贝 docker run -p 3307:3306 --name mysql1 -di -v /home/javaxl/data/mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /home/javaxl/data/mysql/data/:/var/lib/…

用Python把附近的足浴店都给采集了一遍,好兄弟:针不戳~

前言 嗨喽,大家好呀~这里是爱看美女的小编 又到了学Python时刻~ (文末送读者福利) 我又来了!今天整个好玩的,你们肯定喜欢~ 咱们上班累了,不得好好犒劳一下自己,是吧 ! 于是我整…

相控阵天线(十三):天线校准技术仿真介绍之换相法

目录简介换相法算法简介换相法校准对方向图的影响Hadamard控制矩阵的换相法仿真循环移相控制矩阵的换相法仿真简介 传统方法按照测试区域分,可分为远场、中场和近场测量。远场测量发展成熟,可直接测量方向图,但对条件要求较高,且…

SpringMVC从入门到精通(二)

文章目录6. 响应视图和结果数据6.1 返回值类型6.2 springmvc作用域传值6.3 转发和重定向6.4 json数据格式的请求与响应7.SpringMVC 实现文件上传7.1 文件上传三要素7.2 文件上传依赖7.2 文件上传示例(后端需要配置文件解析器)8. SpringMVC 中的异常处理8…