近日对MySQL语法进行了系统学习,不由得感叹仅仅3堂课的工夫就将自己曾经各种搜索、各种摸索耗费大量时间学习到的那点东西尽数囊括其中且进一步完善了知识系统。

 

也因此,看到本文的你如果想要提升自己,一定要去做一个系统的学习,而非在入门之前就抱着一种遇见问题、百度搜索答案并借此解决问题的想法。短期来看这或许更有效率,但也必然存在着知识盲区,也存在着只知其然不知其所以然的隐患。
 


 

MySQL删除主键

ALTER TABLE tablename CHANGE id id INT;

//此处将id属性重新设置为id INT,第一个id表字段名,第二个id表字段名并承接属性名,其后面未附带自增(AUTO_INCREMENT)也就是删除了自增。

 

ALTER TABLE tablename DROP PRIMARY KEY;

//此时方能删除主键
 



许多人删除主键时会遇到1075错误:

ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

 

翻译过来是只能有一个自增栏目,且该栏目必须是主键。反过来说,自增与主键相辅相成,二者互相影响。

 

因此,MySQL删除主键不是简单的执行DROP命令,而是要删除主键一定要在执行DROP PRIMARY KEY命令之前删除自增。

 

简单总结一下主键与自增的关系:

要设置自增,先主键,再自增

要删除主键,先删自增,再删主键