Python SQL-使用临时表更新主表
我有一个关于SQL的问题,特别是SQLite3。我有两张桌子,让我们把它们命名为main_table和temp_table。这些表基于相同的关系模式,因此它们具有相同的列但不同的行值 现在我想做的是: 对于主表的每一行,如果临时表中有一行具有相同ID,我希望替换它。否则,我希望保留表中的旧行 我正在考虑使用一些连接,但它不能提供我想要的东西 你能给我一个建议吗 编辑:传统信息: 我希望避免写入所有列,因为这些表包含数十个属性,而且由于我必须更新所有列,因此不必全部写入。您有两种方法: 使用临时表中的数据更新主表中的当前行。关系将以ID为基础 在temp_表中添加一列,以标记所有必须传输到main_表的行,或添加其他表以存储必须传输的ID。然后删除所有必须从主表中传输的行,并使用带有标记的列或新表从临时表中插入相应的行Python SQL-使用临时表更新主表,python,sql,sqlite,sql-update,Python,Sql,Sqlite,Sql Update,我有一个关于SQL的问题,特别是SQLite3。我有两张桌子,让我们把它们命名为main_table和temp_table。这些表基于相同的关系模式,因此它们具有相同的列但不同的行值 现在我想做的是: 对于主表的每一行,如果临时表中有一行具有相同ID,我希望替换它。否则,我希望保留表中的旧行 我正在考虑使用一些连接,但它不能提供我想要的东西 你能给我一个建议吗 编辑:传统信息: 我希望避免写入所有列,因为这些表包含数十个属性,而且由于我必须更新所有列,因此不必全部写入。您有两种方法: 使用临时表
如果表具有相同的结构,则只需使用SELECT*: 开始 从主表中删除 在SELECT id中的WHERE id 从临时表格; 插入到主表中 从临时表格中选择*; 犯罪
这还将在temp_表中添加以前不存在于main_表中的任何新行。与此问题非常类似:对sqlite没有任何线索,但闻起来它是一个用于合并或使用subselect进行更新的作业。为什么要使用subselect,@Thomas Tschernich?只要更新。如果你用表B中的数据更新表a,你需要在更新中选择一个子集。或者,如果sqlite.update m set m.col1=t.col1中允许,您可以像MSSQL中那样执行一个奇特的更新联接。。。从m.id=t.id上的主表m内部联接临时表t开始,更新除pot id外的所有列@Thomas Tschernich.Nice!非常感谢。优雅的蚂蚁简单的解决方案。