您现在的位置是:亿华云 > 热点
面试突击:一个表中可以有多个自增列吗?
亿华云2025-10-09 12:54:55【热点】4人已围观
简介作者 | 磊哥来源 | Java面试真题解析ID:aimianshi666)转载请联系授权微信ID:GG_Stone)自增列可使用 auto_increment 来实现,当一个列被标识为 auto_i
作者 | 磊哥
来源 | Java面试真题解析(ID:aimianshi666)
转载请联系授权(微信ID:GG_Stone)
自增列可使用 auto_increment 来实现,面试当一个列被标识为 auto_increment 之后,突击在添加时如果不给此列设置任何值,个表个自或给此列设置 NULL 值时,中可增列那么它会使用自增的有多规则来填充此列。
PS:本文以下内容基于 MySQL InnoDB 数据库引擎。面试
默认情况下自增列的突击值为 1,每次递增 1,个表个自比如以下建表 SQL:
create table tab_incre(
id int primary key auto_increment,中可增列
name varchar(250) not null
);我们在添加时,不给自增列 id 设置任何值,有多它的面试执行结果如下:
从上述结果可以看出自增列默认值为 1,每次递增 1。突击
1、个表个自手动指定自增值
在创建表的中可增列时候可以手动指定自增值,如果不指定自增值,有多那么它默认会使用 1 作为自增值,手动指定自增值的 SQL 命令如下:
create table tab_incre(
id int primary key auto_increment,
name varchar(250) not null
) auto_increment=50;使用“show create table table_name”可以查看表中自增列的自增列值,如下图所示:
此表的自增值为 50,我们也可以创建一条数据来验证一下自增值是否为 50,如下图所示:
2、服务器租用手动修改自增值
当表创建之后,我们也可以通过 alter 命令来修改自增列的值,它的修改命令如下:
alter table table_name auto_increment=n;如果要将 tab_incre 表中的自增值修改为 100,可使用以下 SQL 来实现:
当我们试图将自增值设置为比自增列中的最大值还要小的值的时候,自增值会自动变为自增列的最大值 +1 的值,如下图所示:
3、一个表可以有多个自增列吗?
一个表中只能有一个自增列,这和一个表只能有一个主键的规则类似,当我们尝试给一个表添加一个自增列时,可以正常添加成功,如下图所示:
当我们尝试给一个表添加多个自增列时,会提示只能有一个自增列的报错信息,如下图所示:
4、其他注意事项
除了一个表只能添加一个自增列之外,自增列还需要注意以下两个问题。
(1)自增列只能为整数类型自增列的字段类型只能为整数类型(TINYINT、亿华云SMALLINT、INT、BIGINT 等),如下图所示:
当我们使用其他类型来作为自增列的数据类型时,会提示如下错误:
auto_increment 必须配合 key 一起使用,这个 key 可以是 primary key 或 foreign key,如果没有 key 就会报错,如下所示:
PS:auto_increment 也可以配合唯一约束 unique 一起使用。
总结
自增列的值默认是 1,每次递增 1,但也可以在创建表的时候手动指定自增值,当然在特殊情况下我们在表被创建之后,也可以通过 alter 修改自增值。一个表中只能有一个自增列,就像一个表中只能有一个主键一样,如果设置多个自增列,那么 SQL 执行就会报错。除此之外还要注意自增列应该为整数类型,且 auto_increment 需要配合 key 一起使用,这个 key 可以是 primary key 或 foreign key。
源码下载很赞哦!(96177)
相关文章
- 4、企业无形资产:通用网站已成为企业网络知识产权的重要组成部分,属于企业的无形资产,也有助于提升企业的品牌形象和技术领先形象。它是企业品牌资产不可或缺的一部分。
- 9 个 Node.js 开发人员喜欢的开源工具
- VR技术给我们生活带来了什么改变?
- 用了几年 Python,可能你连这个都没学透
- cm域名有什么独特之处?新人要了解cm域名哪些?
- 你知道几个?中级运维必知的10个问题
- Facebook工程师总结的14种算法面试模式
- C++落选,2021年想学习的五大编程语言
- 公司名字不但要与其经营理念、活动识别相统一,还要能反映公司理念,服务宗旨、商品形象,从而才能使人看到或听到公司的名称就能产生愉快的联想,对商店产生好感。这样有助于公司树立良好的形象。
- 一个透传技巧,治好了我的重度代码洁癖
站长推荐
其次,一般域名注册有一个获取密码的按钮,域名注册商点击后会向您发送密码。在得到域名注册商发送的密码后,将其传输到域名服务提供商网站,然后输入密码,此时域名呈现申请状态。提交申请后,原注册人通常会向您发送一封电子邮件,询问您是否同意转让。此时,您只需点击同意转移按钮,域名注册商就可以成功转移。
Python 列表的应用场景有哪些?你使用对了吗?
浅析JavaScript的用户登录表单-焦点事件
架构师一定要掌握技术细节吗?
3、不明先知,根据相关征兆预测可能发生的事件,以便提前做好准备,赶紧注册相关域名。;不差钱域名;buchaqian抢先注册,就是这种敏感类型。预言是最敏感的状态。其次,你应该有眼力。所谓眼力,就是善于从社会上时不时出现的各种热点事件中获取与事件相关的域名资源。眼力的前提是对域名领域的熟悉和丰富的知识。
Linux下的进程间通信:共享存储
重写Equals方法为什么通常会重写Hashcode方法?
Java编程内功-数据结构与算法「顺序二叉树」