5
A
回答
5
如果您使用ALTER TABLE
與RENAME TO
重命名表,則作爲this page描述(從SQLite的文檔)指數仍將工作:
SQLite中的ALTER TABLE命令允許用戶重命名錶[...]如果正在重命名的表具有觸發器或索引,則這些表在重命名後仍保留附加到表中。
但是請注意,不允許重命名列。這是SQL features not implemented by sqlite之一:
只支持ALTER TABLE命令的RENAME TABLE和ADD COLUMN變體。其他類型的ALTER TABLE操作(例如DROP COLUMN,ALTER COLUMN,ADD CONSTRAINT等)被省略。
行沒有名稱(除了在具有PK的感覺),這樣就沒有真正對其進行重命名的方式。
0
我強烈建議使用Rails ActiveRecord遷移來維護數據庫。這可以在Rails之外完成。所以,你的應用程序並不需要是一個Rails應用程序就如何做到這一點http://exposinggotchas.blogspot.com/2011/02/activerecord-migrations-without-rails.html
0
是的,老的指數仍可正常使用rake任務
在這裏看到一個優秀的博客。
請注意,sqlite不關心索引的名稱。最初創建索引時,通常會根據表和字段來命名索引,因此當您重命名錶時,索引仍然會包含舊錶的名稱。這可能會導致問題,當你比如:
- 轉儲表
重命名舊錶:
sqlite3 "$DB" "PRAGMA busy_timeout=20000; ALTER TABLE '$TABLE' RENAME TO '$TABLE"_backup"'"
- 重新導入轉儲的表
這將導致一個錯誤,指數已經存在。
解決方案:重命名索引過,或刪除他們在改名錶重新導入前原(見this answer)。
相關問題
- 1. 列索引順序SQLite的創建表
- 2. 如果列重命名,MySQL是否會重建列索引?
- 3. 根據列索引重命名Dataframe列
- 4. 在sqlite中創建索引列
- 5. SQLite不會創建索引
- 6. SQLite重命名fts3 rowid列
- 7. Python Pandas多重索引:重命名特定索引行值
- 8. 在sqlite重命名錶
- 9. 重命名索引值
- 10. 創建索引列
- 11. 如何重新命名SQLite中的索引?
- 12. SQL Server在創建表時自動命名索引
- 13. 在添加列之前創建索引與添加列之後創建索引 - 是否重要?
- 14. 分區MySQL表後創建索引?
- 15. 重命名文件名索引
- 16. 重命名文件,如「名稱+索引」
- 17. 重命名錶列
- 18. 使用SQLite管理器創建索引
- 19. 如何在R中將相關矩陣轉換爲df來創建行名,行索引,列索引,列名?
- 20. Lucene創建重複索引
- 21. VFP。重新創建索引
- 22. 複製後重命名工作表並創建主工作簿
- 23. 如何在創建表後從命令行添加到DynamoDB的索引
- 24. Sqlite:重命名列和數據類型
- 25. 刪除或重命名sqlite中的列
- 26. rails遷移和重命名blob列(sqlite)
- 27. 如何從列表中創建索引?
- 28. 從索引創建子列表
- 29. 動態創建列表的索引Javascript
- 30. 創建一個動態列表索引
有沒有辦法複製從一個列到另一個的信息,然後刪除第一列? – joshim5
看到這個[其他SO問題](http://stackoverflow.com/questions/805363/how-do-i-rename-a-column-in-a-sqlite-database-table)上重命名列 –
我實際上只是看看:)。第一個答案看起來不錯,但我應該如何處理這些指數? – joshim5