我创建了这个表 USERS 有 1000 万条记录
mysql> desc users;
+--------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| id | int | NO | | NULL | |
| name | varchar(255) | NO | | NULL | |
| email | varchar(255) | NO | | NULL | |
| gender | varchar(10) | NO | | NULL | |
+--------+--------------+------+-----+---------+-------+
现在我有 2 个终端会话,session_1 和 session_2 在 session_1 中,我运行了此命令
mysql> alter table users add primary key(id);
虽然 session_1 中的这个 alter 命令仍在进行中,但在会话 2 中,我使用以下命令终止了 mysql 客户端
kill -9 <mysql_session_id>
当我重新启动 mysql 客户端时,我desc USERS
再次发出,我在 id 列上看不到任何主键,但大约一分钟后,我看到主键在
id
列上。
mysql> desc users;
+--------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| id | int | NO | PRI | NULL | |
| name | varchar(255) | NO | | NULL | |
| email | varchar(255) | NO | | NULL | |
| gender | varchar(10) | NO | | NULL | |
+--------+--------------+------+-----+---------+-------+
4 rows in set (0.01 sec)
我也尝试过set autocommit=0