2010-05-27 151 views
1

有人可以向我解釋爲什麼我收到以下錯誤?ALTER TABLE錯誤

我想使用以下語法在mysql表中將列「exerciseID」重命名爲「ID」。

ALTER TABLE `exercises` CHANGE `exerciseID` `ID` INT(11) NOT NULL AUTO_INCREMENT 

不過,我收到以下錯誤:

MySQL said: 

#1025 - Error on rename of './balance/#sql-de_110e' to './balance/exercises' (errno: 150) 

任何建議,將不勝感激

+0

http://www.xaprb.com/blog/2006/08/22/mysqls-error- 1025解釋/ – miku 2010-05-27 12:17:56

回答

2

我會檢查,看看你有該列的任何外鍵引用。如果是這樣,您可能需要刪除您爲該列定義的外部關係,然後重命名,然後將外鍵關係重新置於新列名稱的位置。

我認爲MySQL越來越掛在事實上,當你重命名,FK關係不再有效,它是拋出一個錯誤。

編輯:確認 FK Rename in MySQL

你需要做這樣的事情:

alter table yourTable drop foreign key yourID 
+0

就是這樣。謝謝。 – Travis 2010-05-27 23:45:56

0

我認爲這可能是一個多步驟的過程。

  1. 添加新列,
  2. 從原來列在複製數據
  3. 刪除舊列
0

只是有在谷歌快速搜索,它看起來像您引用外鍵中的列 - 防止重命名。

怕我不知道你會如何解決這個問題,因爲我還沒有在MySQL中使用外鍵所有的東西