mysql为什么先删除自增长再删除主键

如果主键为自增长,直接删除主键会报错,只能先删除自增长后才能删除主键,为什么?

MySQL主键添加/删除

2改动数据库和表的字符集
alter database maildb default character set
utf8;//改动数据库的字符集
alter table mailtable default character set
utf8;//改动表的字符集
假设您想要把表默认的字符集和全部字符列(CHAR, VARCHAR,
TEXT)改为新的字符集,应使用例如以下语句:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET
charset_name;
警告:前面的操作转换了字符集之间的列类型。假设您有一列使用一种字符集(如latin1),可是存储的值实际上使用了其他的字符集(如utf8),这种情况不是您想要的。此时,您必须对这种列进行下面操作。
ALTER
TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET
utf8;
这个方法能够实现此功能的原因是,当您转换到BLOB列或从BLOB列转换过来时,并没有发生转换。
3
mysql的主键问题:
Mysql的两种主键。Primary key 和not null
auto_incriment
在建立mysql表时,给一个字段增加了主键primary key

在insert数据时能够不用insert主键,mysql会自己主动增加0,可是在第二次insert时没有填写值mysql数据库还是默认增加0,会导致有反复的主键,这是不能够的。全部在定义了primary
key时,在insert数据时要给主键填写值。
在建立mysql表时,给一个字段增加了主键not null
auto_increment=1;
这也是一个主键。时自增长的以1为开始。这个字段是能够不用填写值的,mysql数据库会自己主动给填写值,不会出现primary
key的状况。
Alter table tb add primary key(id);
Alter table tb change id id
int(10) not null auto_increment=1;
4 删除自增长的主键id
先删除自增长在删除主键
Alter table
tb change id id int(10);//删除自增长
Alter table tb drop primary
key;//删除主建。
温馨提示:答案为网友推荐,仅供参考
相似回答