如何重命名MySQL中的主鍵列?如何重命名MySQL中的主鍵列?
回答
它沒有改變比任何其他列不同 -
ALTER TABLE `pkey` CHANGE `keyfield` `keyfield2` INT(11) NOT NULL AUTO_INCREMENT
這改變了表pkey
列keyfield
被稱爲keyfield2
- 你必須在事後提供的定義,一如往常。
如果你正在使用InnoDB,那麼我認爲你不能重命名主鍵,至少你不能通過外鍵引用它們。您需要轉儲數據庫,重命名轉儲文件中的列和引用鍵,然後重新加載數據庫。
也許你有一個外鍵約束。您可以通過SET foreign_key_constraints=0
禁用這些功能,但您必須記住事後更新數據庫。
如何更改此值?之後我會改變價值1嗎? – 2017-04-13 14:04:45
@RafaelGomesFrancisco你是什麼意思? – Alex 2017-04-17 17:40:07
可能是一個不好的做法。但你可以將你的整個數據庫導出到一個sql文本文件。查找並替換要重命名的PK,然後通過sql恢復數據庫。
離開alter語句的PRIMARY KEY部分。主鍵將自動更新。
當你遇到意想不到的錯誤時,這個答案可以解決問題。大! – 2017-12-15 13:04:12
如果其他表在表上有外鍵,則不能使用alter table直接重命名該列,否則會引發以下錯誤:[HY000] [1025]將xxx重命名爲yyy(錯誤:150) 你必須:從其他表指向要重命名
- 下降外鍵命名的主鍵
- 國外列添加到其他表
在Intellij中重命名錶時,它會生成代碼並刪除並添加外鍵。
- 1. 重命名MySQL中的外鍵列
- 2. 如何在mysql中重命名外鍵?
- 3. 在MySQL上重命名主鍵約束
- 4. MySQL - 如何重命名列?
- 5. Rails 4 - 重命名主鍵
- 6. 重命名mysql中名爲「add」的列
- 7. 在sqlite中重命名主鍵
- 8. 重新排列mysql中的主鍵
- 9. 如何重命名CFWHEELS中的主鍵字段?
- 10. 如何重命名訪問數據庫中的主鍵值
- 11. 如何重命名外鍵?
- 12. 重命名唯一鍵名MySQL
- 13. 如何重命名MySQL中的索引
- 14. 如何重命名MySQL中的模式
- 15. 如何在Oracle中重命名主鍵值?
- 16. Mysql使用重命名列
- 17. 經由Liquibase重命名主鍵列,自動增量被丟棄(MySQL的)
- 18. MySQL中的兩列主鍵
- 19. MySQL主鍵列上的重複索引?
- 20. 獲取sqlalchemy.migrate重命名具有主鍵的列
- 21. 如何重命名Oracle中的主鍵,以便它可以重複使用
- 22. 我如何給主鍵約束命名?
- 23. 在MySQL中重置主鍵?
- 24. MySQL:爲外鍵命名是否重要?
- 25. 在mysql中重命名錶列
- 26. 如何重命名ORMLite中的列?
- 27. 如何重命名Big Query中的列?
- 28. laravel 5主鍵列未命名id
- 29. 如何重命名datagridView列
- 30. 用php和MySql重命名列名
此解決方案將導致錯誤150. – 2011-01-07 07:01:50
這適用於沒有外鍵的情況。另一個答案建議傾銷/恢復整個數據庫,這將工作,但只是丟棄/重新創建爲我工作的外鍵/索引。 – penfold 2011-10-03 23:09:01
同意@Pavel Rodionov,它會拋出以下錯誤:[HY000] [1025]將xxx重命名爲yyy(錯誤:150)的錯誤 – 2015-12-05 20:03:58