返回顶部
首页 > 资讯 > 数据库 >MySQL【AUTO_INCREMENT 】自增列
  • 309
分享到

MySQL【AUTO_INCREMENT 】自增列

mysql数据库sql 2023-09-17 07:09:24 309人浏览 八月长安
摘要

使用案例场景再现:  创建一个为test的数据库,为数据库test创建一个数据表student ,其中包含的字段有 id name sex,admission_time,其中要求student表中的人员id必须连续排列。 create da

使用案例场景再现: 

创建一个为test的数据库,为数据库test创建一个数据表student ,其中包含的字段有 id name sex,admission_time,其中要求student表中的人员id必须连续排列。

create database test        use test       

create table student (

id   int primary key auto_increment

name varchar(15)

sex varhcar(5)

admission_time  data

其中 auto_increment 就是自增列,具体功能是当需要产生唯一标识符或顺序值时,可设置自增长,一般使用于一张表中的主键

关键字 :   auto_increment   主要被用于主键

注意点:一个表最多只能有一个自增长列

(2)自增长列约束的列必须是键列(主键列,唯一键列)

(3)自增约束的列的数据类型必须是整数类型

(4)如果自增列指定了 0 和 null,会在当前最大值的基础上自增;

案例测试一:(一个表最多只能有一个自增长列)

错误示例:

CREATE TABLE student (

id   int PRIMARY KEY AUTO_INCREMENT,

NAME varchar(15),

sex varhcar(5),

admission_time  DATA UNIQUE AUTO_INCREMENT

)

错误示例:自增长列约束的列必须是(主键列或 唯一键列)

CREATE TABLE emp2(
id INT AUTO_INCREMENT,
`NAME` VARCHAR(20),
pwd VARCHAR(15)
)

错误代码: 1075
Incorrect table definition; there can be only one auto column and it must be defined as a key
         (表定义不正确;只能有一个自动列,并且必须将其定义为键)

错误示例2:自增长列约束的列必须是(主键列或 唯一键列

CREATE TABLE emp2(
id INT primary key,
`NAME` VARCHAR(20) ,
pwd int     AUTO_INCREMENT   

# 没有声明密码的唯一性如果改为

pwd int  unique   AUTO_INCREMENT   # 正确的
)

为什么AUTO_INCREMENT,建议被用于 主键 而且数据类型必须为 int ,首先要从它作用看,它是被用来对某一字段自增加1的,比如你需要给你们班级建立一个表,从第一个学生开始,你每入一个学生信息,是不是需要修改一下它的id号,将其写为 1 ,2,  3,4,..... 

如果你将它的id号设置了自增,那是不是就不用管id了,你每插入新的记录它都会增。

案例:

创建一个表

CREATE TABLE emp2(
id INT PRIMARY KEY AUTO_INCREMENT,
`NAME` VARCHAR(20),
pwd VARCHAR(15)
)

插入三条数据

INSERT INTO emp2(`name`,pwd) VALUES
("李四","xcvb"),
("王麻子","xcvb"),
("刘栋","xcvb");

因为我们将 id字段设置了自增 (AUTO_INCREMENT) 所以 emp2表的id字段会自动增长,我们就不用在给她赋值例如:

INSERT INTO emp2(`name`,pwd) VALUES
  (1,"李四","xcvb"),

(2,"王麻子","xcvb"),
(3,"刘栋","xcvb");

注意: 如果我们已经将id号设置为了自增列,就不建议再次对自增列复新值了

INSERT INTO emp2(id,`name`,pwd) VALUES
(10,"周记","xcvb")

我们在插入新的排列顺序时,会出现问题 

INSERT INTO emp2(`name`,pwd) VALUES
("马林","xcvb")

name = 马林 这条数据会从id = 11 开始,而不是我们刚按顺序排列的4 插入完成后应该是 id = 5 

注意:在对已经设置了自增列的表插入新的数据时,一定要考虑好里面的数据,如果在后续出现问题的话,删除这条信息 ,在重新插入的时候会出现裂缝

我们来删除 id = 4 name = "刘栋" 这条数据 
DELETE FROM emp3 WHERE id = 4

重新插入一条数据 :INSERT INTO emp3(`name`,pwd) VALUES
("周记","xcvb")

如果按照常规理解 id = 4被删掉了,重新按照顺序插入的话应该是4,其实不是。

通过查看表内数据,id是从5开始排列,这样操作有的时候会造成主键冲突及其一些其他问题,(主键冲突的原因就是,列表中存在这样一条数据,我们重新相同id的数据插入的话会发现插入不成功,出现这种问题的原因是因为我删除了某些数据,经过一段时候后人为的记忆就会忘记一些数据信息),当然你也可以在后面另行补上。   insert into 表名(4,`name`,pwd)。

这叫自增变量持久化。Mysql 8.0 不会初始化,自增列的排列数据信息,会将历史的自增后删除了数据操作记录保留在重做日志中。

总结:(论语二则)

“君子食无求饱,居无求安,敏于事而慎于言,就有道而正焉学可谓好学也已。”

君子吃饭不求填饱肚子,居住不追求安逸宽大的房子,勤快的做自己该做的事情,和他人谈话要谨而慎之,接近有道德有学问的人并向他学习,纠正自己的缺点,就可以称得上是好学了

子曰,质胜文则野,文胜质则史,文质彬彬,然后君子

“质朴超过文采就会显得粗狂野蛮,文采超过质朴就会过于浮华。文采与质朴搭配适中,才能成为君子。”

来源地址:https://blog.csdn.net/weixin_59131972/article/details/128510419

您可能感兴趣的文档:

--结束END--

本文标题: MySQL【AUTO_INCREMENT 】自增列

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

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

猜你喜欢
  • MySQL【AUTO_INCREMENT 】自增列
    使用案例场景再现:  创建一个为test的数据库,为数据库test创建一个数据表student ,其中包含的字段有 id name sex,admission_time,其中要求student表中的人员id必须连续排列。 create da...
    99+
    2023-09-17
    mysql 数据库 sql
  • MySQL数据库——MySQL AUTO_INCREMENT:主键自增长
    在 MySQL 中,当主键定义为自增长后,这个主键的值就不再需要用户输入数据了,而由数据库系统根据定义自动赋值。每增加一条记录,主键会自动以相同的步长进行增长。 通过给字段添加 AUTO_INCREMENT 属性来实现主键自增长。语法格式如...
    99+
    2023-09-02
    数据库 mysql sql
  • MySQL数据库auto_increment自增值回溯
    本篇内容介绍了“MySQL数据库auto_increment自增值回溯”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够...
    99+
    2024-04-02
  • python mysql自增字段AUTO_INCREMENT值的修改方式
    在之前得文章中我们说过,如果使用delete对数据库中得表进行删除,那么只是把记录删除掉,并且id的值还会保持上次的状态。 即删除之前如果有四条数据,删除之后,再添加新的数据,id怎会从5开始。 但是我们显示想让id...
    99+
    2022-05-17
    python mysql 自增字段 AUTO_INCREMENT值
  • mysql自增列
    1、mysql创建带自增列的表 create table inc(id int(10) not null auto_increment,name varchar(20),primary key (...
    99+
    2024-04-02
  • mysql搜索自增列的方法
    这篇文章主要介绍了mysql搜索自增列的方法,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql搜索自增列的方法:1、使用【selec...
    99+
    2024-04-02
  • 如何理解mysql自增长列
    本篇文章给大家分享的是有关如何理解mysql自增长列,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 自增长列必须是...
    99+
    2024-04-02
  • mysql如何查询自增序列
    在MySQL中,可以通过DESC语句查询表的结构,找到自增列的信息。例如,假设有一个名为users的表,其中有一个自增列id,可以通...
    99+
    2024-05-11
    mysql
  • mysql的auto_increment详解
    转载http://blog.csdn.net/fwkjdaghappy1/article/details/7663331 ...
    99+
    2024-04-02
  • mysql实现自增序列的方法
    这篇文章主要为大家展示了“mysql实现自增序列的方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql实现自增序列的方法”这篇文章吧。1.创建seque...
    99+
    2024-04-02
  • mysql自增长列指的是什么
    这篇文章主要介绍了mysql自增长列指的是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说明不用手动插入值,可以自动提供序列值,默认从1开始,步长为1。如果要更改起始值:...
    99+
    2023-06-20
  • sqlserver怎么增加自增列
    要在SQL Server中增加自增列,可以使用IDENTITY属性。IDENTITY属性可以自动为列生成唯一的递增值。 以下是在SQ...
    99+
    2024-04-09
    sqlserver
  • oracle列自增实现
    1.Sequence+Trigger实现Oracle列自增CREATE SEQUENCE 序列名[INCREMENT BY n][START WITH n][{MAXVALUE/MINVALUE n|NOM...
    99+
    2024-04-02
  • SQL自增列重置
    SQL自增列重置    从网上搜集资料,在SQL中重置自增标识列主要有以下三种方法:方法一:删除原表数据并重置自增列--- 删除原表数据并重置自增列 tru...
    99+
    2024-04-02
  • mysql实现自增序列的示例代码
    创建sequence表 CREATE TABLE `sequence` ( `name` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '序列的名字',...
    99+
    2022-05-28
    mysql 自增序列
  • mysql如何修改自增列的初始值
    要修改MySQL表中自增列的初始值,可以使用ALTER TABLE语句来实现。以下是修改自增列初始值的步骤: 首先,使用DESCR...
    99+
    2024-04-20
    mysql
  • mysql怎么修改自增列的初始值
    要修改MySQL表中自增列的初始值,可以使用ALTER TABLE语句。以下是一个示例: ALTER TABLE table_nam...
    99+
    2024-05-14
    mysql
  • 在MySQL中创建实现自增的序列(Sequence)
    由于mysql和oracle不太一样,不支持直接的sequence,所以需要创建一张table来模拟sequence的功能,理由sql语句如下: 第一步:创建--Sequence 管理表 DROP...
    99+
    2024-04-02
  • mysql如何增加列
    这篇文章主要讲解了“mysql如何增加列”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql如何增加列”吧! 在mysql中...
    99+
    2024-04-02
  • Oracle12c如何实现自增列
    小编给大家分享一下Oracle12c如何实现自增列,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.Mysql自增列众所周知,m...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作