我试图合并具有相同表(和模式)的几对SQLite3数据库。有些表格非常简单,只有一些明文数据,但有些表格有主键。有些密钥是唯一的,如URL(例如url LONGVARCHAR PRIMARY KEY
),其中一些只是简单的整数索引,但未设置为自动增量(例如id INTEGER PRIMARY KEY
)。将行添加到主键可能已存在的SQLite数据库中
我发现了几个关于合并数据库的主题(而且我已经手动合并了一对非主键数据库而不费力),但是我担心这两个主键可能已经存在。
我的问题是,如果一行被插入到一个数据库中已经存在一个具有相同密钥的行,会发生什么?它应该覆盖具有该键的行吗?我希望它会将它们追加到表中并更新密钥,但只有当密钥的数字组件设置为自动递增正确时才有效?
任何人都可以确认我的假设 - 如果可能的话,提供一个最简单的方法来追加这样的行的建议?
非常感谢。
对;当键存在时插入失败,但更新覆盖该行 - 为什么没有APPEND命令? `:-(`对于URL键,它主要是用最新数据库中的同一行更新行。是否有一种方法可以自动执行max + 1方法?我正在使用SQLite3命令行程序;是 – Synetech 2011-02-13 06:52:12
有*是*一个APPEND语句;我们称之为INSERT。键是你的朋友 – 2011-02-13 12:57:25