簡體   English   中英

MySQL alter table生成“重命名時出錯”

[英]MySQL alter table generating “error on rename”

這是我的錯誤的打印:

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)

我已閱讀此頁面該頁面表明該問題可能是由於某些早期alter table錯誤導致的剩余表,並建議您在數據目錄中窺探並刪除任何名稱為“B-xxx”的表。 FRM”。

我的錯誤類似於此,但我的數據目錄中沒有'#sql2-bcc-16'。 無論如何,不​​會有任何先前失敗的alter table的工件,因為這只是一個小的測試數據庫而且我之前沒有實際更改任何表。

編輯:更多信息如下。

我真正想要做的是將另一個表中的Id(主鍵)更改為SMALLINT(而不是TINYINT)。 但是,此電話表的Id是外鍵,在另一個表中引用Id。 因此,我認為在繼續主表中的類型更改之前,我需要刪除此表的外鍵。 我希望這很清楚。

編輯2:表格。

銷售 - 有Id TINYINT NOT NULL,主要密鑰(Id)

電話 - 有Id TINYINT NOT NULL,外鍵(Id)參考銷售(Id)

我希望我的數據庫中的所有ID都是SMALLINT而不是TINYINT。 那是我目前的情況。

嘗試使用mysql> ALTER TABLE Price DROP Id

希望它有效......祝你好運

我試過你查詢mysql> ALTER TABLE Price DROP FOREIGN KEY Id

它執行,但沒有奏效!

更新:

使用以下查詢...

mysql> ALTER TABLE Price MODIFY Id SMALLINT

mysql> ALTER TABLE Sale MODIFY Id SMALLINT

mysql> ALTER TABLE Phone MODIFY Id SMALLINT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM