首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在保留数据(和关系)的同时更新数据库模式

在保留数据(和关系)的同时更新数据库模式
EN

Stack Overflow用户
提问于 2015-03-30 05:48:07
回答 1查看 119关注 0票数 0

我有一个简单的数据库模式,其中包含5个表和一些外键关系。现在,我希望在不丢失关系的情况下更新模式。

SQLite不支持我要执行的操作。我想将列标记为自动增量。所以我进行了搜索,发现我需要重新创建这些表。

在所有的关系中,外键是自动生成的行ID。当我重新插入数据时,这将改变(对吗?)。最好的情况是关系不匹配。最糟糕的情况(我认为)是外键不对应任何内容。我该如何避免这种情况?

我能想到的一种方法是将所有数据都转储到一个专门为这个练习设计的模型中。这个特殊的模型将封装所有的关系。然后,我可以开始按照从最少到最多的顺序创建新的表。没有外键(但其他表使用它的ID)的表首先进入。在插入行时,我更新了模型实例。

有没有更好的方法来做这件事?感谢您的阅读。

EN

回答 1

Stack Overflow用户

发布于 2015-03-30 15:31:57

可以将自动递增列中的值设置为显式值:

代码语言:javascript
复制
INSERT INTO MyTable(MyAutoincID, Name) VALUES(42, 'hello')

只需将ID与其他列值一起复制即可。

此外,只要您不使用PRAGMA foreign_keyssetForeignKeyConstraintsEnabled()启用外键检查,就会允许您的数据库暂时具有不一致的数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29335279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档