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