Mysql

嘗試更改 MySQL 中的主鍵時出現“臨時文件寫入失敗”

  • March 24, 2018

在 MySQL 中,當我嘗試通過此查詢更改主鍵時:

ALTER TABLE `resources` DROP PRIMARY KEY, ADD
PRIMARY KEY (`role_id`, `category_id`, `lang`, `model`, `rule`);

我使用 MySQL root 使用者執行此查詢,但發生此錯誤:

#1878 - Temporary file write failure.

我的桌子設計是:

CREATE TABLE `resources` (
   `role_id` INT(11) UNSIGNED NOT NULL ,
   `category_id` SMALLINT(5) UNSIGNED NOT NULL DEFAULT 1 ,
   `lang` BINARY(2) NOT NULL ,
   `model` SMALLINT(5) UNSIGNED NOT NULL ,
   `rule` CHAR(4) NOT NULL ,
   PRIMARY KEY (`category_id`, `lang`, `model`, `rule`, `role_id`)
)
ENGINE = InnoDB;

該表大約有 2000 行。

我使用 MySQL 5.6

為什麼會出現這個錯誤?

我該怎麼辦?

我有同樣的問題,我做了以下:

create table resources_with_key like resources;
alter table resources_with_key add primary key(`category_id`, `lang`, `model`, `rule`, `role_id`);
insert into resources_with_key select * from resources;

引用自:https://dba.stackexchange.com/questions/68891