亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

mysql錯誤1025(HY000):“ ./ foo”重命名錯誤(錯誤編號:150)是什么意思?

mysql錯誤1025(HY000):“ ./ foo”重命名錯誤(錯誤編號:150)是什么意思?

叮當貓咪 2019-11-06 10:28:37
我在mysql中嘗試過這個:mysql> alter table region drop column country_id;并得到這個:ERROR 1025 (HY000): Error on rename of './product/#sql-14ae_81' to'./product/region' (errno: 150)有任何想法嗎?外鍵東西?
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

如果您的表使用InnoDB引擎,通常會出現此錯誤。在這種情況下,您將必須刪除外鍵,然后執行alter table并刪除列。


但是棘手的部分是您不能使用列名刪除外鍵,而必須找到用于為其索引的名稱。為此,請發出以下選擇:


SHOW CREATE TABLE區域;


這應該顯示索引的名稱,如下所示:


約束外region_ibfk_1鍵(country_id)參考 country(id)關于刪除無作用更新無作用


現在只需發出:


修改表區域丟棄外鍵 region_ibfk_1;


最后是:


更改表區域放置列country_id;


而且你很好走!


查看完整回答
反對 回復 2019-11-06
?
ibeautiful

TA貢獻1993條經驗 獲得超6個贊

這確實是一個外鍵錯誤,您可以使用perror找出:


shell$ perror 150

MySQL error code 150: Foreign key constraint is incorrectly formed

要查找有關失敗原因的更多詳細信息,可以使用SHOW ENGINE INNODB STATUS并查找“最新外來錯誤”部分,其中包含有關錯誤原因的詳細信息。


在您的情況下,很可能是因為某些內容引用了country_id列。


查看完整回答
反對 回復 2019-11-06
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

您還可能由于嘗試刪除不存在的外鍵而收到此錯誤。因此,在刪除外鍵時,請始終確保它們確實存在。


如果外鍵確實存在,并且仍然出現此錯誤,請嘗試以下操作:


SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;

SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;

SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

//將外鍵放在這里!


SET SQL_MODE=@OLD_SQL_MODE;

SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;

SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

這總是對我有用:)


查看完整回答
反對 回復 2019-11-06
  • 3 回答
  • 0 關注
  • 1487 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號