查看原文
其他

来试试这道 MySQL 面试题吧,比 Leecode 好玩多了~~~

破产码农 InsideMySQL 2022-10-13
点击卡片,关注 InsideMySQL
新年好,各位码农小可爱们,祝大家虎年大吉,新的一年 day day up
作为虎年 IMG 的第一篇公众号文章,不如我们来刷个题吧,看看有哪些小可爱们可以做对。
1. 假设表x的表结构和内容如下所示:
mysql> show create table x\G ***********1.row************* Table:xCreate 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:yCreate 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群

往期推荐



从职高到麻省理工计算机博士,他是传奇!

MySQL Group Replication Multi-Primary 模式,你真的理解么?

完全免费!完全免费!完全免费!我们做的这一切,就是为了让码农们脱单...

震惊!MySQL 3.23 版本跑在 96 核 CPU ,性能竟不输最新 MySQL 8.0 ......

全网最完整的 MySQL Clone Plugin 实现原理解析

gh-ost 翻车!使用后导致数据丢失!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存