最近同步測試場和正式從的數據庫結構,發現正式場的數據表的主鍵都沒有使用BTREE,於是需要進行新增,但實際上Mysql是沒有提供直接修改主鍵的語句的,需要先刪除后新增。同時,因為主鍵索引大多數是自增的,一般你直接使用刪除語句:
alter table jd_product_bricks drop primary key;
1
數據庫會報錯:
Incorrect table definition; there can be only one auto column and it must be defined as a key
1
原因是你這個刪除的主鍵字段是自增的,而mysql是不允許刪除唯一的自增字段的。
因此我們刪除的同時,也需要把自增給刪除再刪除主鍵字段,組合起來的語句是:
alter table jd_product_bricks drop primary key, modify id bigint(20) unsigned NOT NULL COMMENT '主鍵' ;
1
那么刪除了,我們就需要新增了主鍵和字段了:
alter table jd_product_bricks add primary key(`id`) USING BTREE, modify id bigint(20) unsigned NOT NULL COMMENT '主鍵' auto_increment;
1
最后就能處理這個問題了。
————————————————
版權聲明:本文為CSDN博主「Tim_PHPer」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Tim_phper/article/details/108347407