這是我的錯誤的打印:MySQL的改變表生成「上的重命名錯誤」
mysql> ALTER TABLE Price DROP FOREIGN KEY Id
ERROR 1025 (HY000): Error on rename of '.\testdb\Price' to '.\t
estdb\#sql2-bcc-16' (errno: 152)
我讀過this page這表明該問題可能是由於遺留的表從一些早期的改變表錯誤,並建議您在數據目錄中窺探並刪除任何名稱爲「B-xxx.frm」的表。
我的錯誤與此類似,但在我的數據目錄中沒有'#sql2-bcc-16'。而且不會有任何先前失敗的alter table的工件,無論如何,因爲這只是一個小的測試數據庫,而且我之前沒有真正更改過任何表。
編輯:下面更多信息。
我真正想要做的是將另一個表中的Id(主鍵)更改爲SMALLINT(而不是TINYINT)。但是,此Phone表的Id是一個外鍵,在另一個表中引用Id。所以,我相信我需要在繼續進行主表中的類型更改之前刪除此表的外鍵。我希望這很清楚。
編輯2:表。
出售 - 有標識TINYINT NOT NULL,PRIMARY KEY(Id)的
電話 - 有標識TINYINT NOT NULL,外鍵(Id)的參考單位(Id)的
我想所有的IDS在我數據庫爲SMALLINT而不是TINYINT。這是我目前的情況。
帖子的頂部不斷消失。它說「大家好,...」有人命名爲'thinksteep'不斷編輯我的帖子。 – MitchellSalad 2012-01-18 06:05:40
我相信Id是另一張表的主鍵......對嗎? – 2012-01-18 06:07:14
Fahim - 正確!我會用更多的相關信息更新OP。 – MitchellSalad 2012-01-18 06:12:16