使用命令时:
ALTER TABLE my_table DROP PRIMARY KEY;
Run Code Online (Sandbox Code Playgroud)
状态(当SHOW PROCESSLIST时)显示为:
copy to tmp table
Run Code Online (Sandbox Code Playgroud)
为什么需要使用tmp表来"删除"主键约束?
考虑复合主键的情况.在这种情况下,数据库引擎必须从合成密钥创建一个新的聚簇索引,这需要移动行.(请记住,主键通过磁盘对磁盘进行物理排序.)鉴于这种情况很罕见,处理主键已经是整数的特殊情况并不值得.