baxiadsy_csdn 2019-01-04 09:09 采纳率: 0%
浏览 1478
已采纳

删除表时难道不会自动删除主键吗?

今天看到SQL语句

alter table TB_1 drop primary key;
drop table if exists TB_1;

感觉有些多此一举,删除表的时候,主键难道不会自动删除吗?

  • 写回答

2条回答 默认 最新

  • 大川里的小川人 2019-01-04 10:24
    关注

    这个问题需要你真的去了解一下数据库的架构,以我了解的 MySQL为例:
    主键的意思实际上并不是体现在表上,1、主键是一种约束,就是唯一的标识 2、主键在表中实际体现与其他的列没有太多的区别 3、主键的用处实际上是通过B+树的索引来提高查找速度,举个例子,现在我新建了一个表,定义了一个主键,实际上,现在相当于在数据库的 B+ 树种添加了一个节点类型,然后往表中添加数据记录时,是按照主键的相对顺序添加的,这才是主键的用处。查询也较快。 主键 与 索引

    然后回到你的问题,删除表后,所有的数据都删除了,但是主键创建的这个索引还是在 B+ 树上面的,所以这个索引的B+树叶需要被删除
    存的地方是不一样的,比如索引是 在索引页 数据在数据页(B+树的叶子结点存放了对应地址)

    所以删除表,只是所有的数据页,索引页仍然存在,如果不删除,首先会占用内存,至于其他问题我还不清楚,可能会有相同索引再次创建的冲突问题。
    解决问题请采纳。

    然后我最近也在学 MySQL,你可以看下我博客的内容

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 MC9S12XS128单片机实验
  • ¥15 失败的github程序安装
  • ¥15 WSL上下载的joern在windows怎么用?
  • ¥15 jetson nano4GB
  • ¥15 电脑回复出厂设置,重装过程报错提示,求解决方案Windows 无法分析或处理无人参与应答文件 [C:\WINDOWS\Panther\unattend.xml,如何解决?
  • ¥15 进入lighttools中的UDOP编辑器的方法
  • ¥15 求Gen6d训练数据集
  • ¥20 liunx中winscp中可以登入ftp,但是不能登入sftp,如何解决
  • ¥15 lighttools的光学属性自定义的用法流程
  • ¥15 uni-app动态修改推荐页内容时报错
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部