点击卡片,关注 InsideMySQL
新年好,各位码农小可爱们,祝大家虎年大吉,新的一年 day day up
作为虎年 IMG 的第一篇公众号文章,不如我们来刷个题吧,看看有哪些小可爱们可以做对。
1. 假设表x的表结构和内容如下所示:
mysql> show create table x\G
***********1.row*************
Table:x
Create Table: CREATE TABLE `x`(
`a` INT NOT NULL AUTO INCREMENT,
`b` VARCHAR(1),
PRIMARY KEY (`a`)) ENGINE=InnODB;
mysql> SELECT * FROM x;
| a | b |
| 0 | a |
| 2 | b |
mysql> ALTER TABLE x MODIFY COLUMN b VARCHAR(5);
请问执行完ALTER TABLE x MODIFY COLUMN b VARCHAR(5)后,表x中的数据是怎样的?
2. 假设表y的表结构和内容如下所示:
mysql> show create table y\G
***********1.row*************
Table:y
Create Table: CREATE TABLE `y`(
`a` INT,
`b` VARCHAR(1),
PRIMARY KEY (`a`)) ENGINE=InnODB;
mysql> SELECT * FROM y;
| a | b |
| 0 | a |
| 2 | b |
mysql> ALTER TABLE y MODIFY COLUMN a INT AUTO_INCREMENT;
请问执行完ALTER TABLE y MODIFY COLUMN a INT AUTO_INCREMENT后,表x中的数据是怎样的?
若不在 MySQL 环境下执行上述两条 DDL 语句,相信大多数同学的答案会是错误的。
即便通过执行 DDL 语句知道了最终的答案,那你知道 why 么?
这是一个非常有意思的问题,甚至可以说是 MySQL 一个“愚蠢至极”的 Bug。
周四晚上 21:00 来姜老师的抖音直播间,我将会通过分析源码的方式告诉同学们为什么 MySQL 是这么运行的。
IMG群是码农的交流社区,IMG微信群交流内容包括但不限于技术、经济、军事、八卦等话题。欢迎有态度的码农们加入IMG大家庭。
IMG目前有少林群、武当群、峨眉群、华山群、M悦会(高端VIP群)。
仅限码农入群,猎头或其他行业勿加,入群请加姜老师个人微信82946772,并备注:码农入IMG群
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.