Python pyodbc - 比较两个数据库:如何基于其他更新,插入,删除一个

时间:2015-09-08 16:14:30

标签: python sql-server pyodbc

以下是设置: 我有两个数据库,一个是只读的,另一个是写的。目前每次"阅读"数据库被轮询"写"数据库的行被删除并重新插入。不幸的是,在此轮询过程中,信息显示不准确,直到轮询完成。我很难写出适当的条件,这些条件会告诉"写"数据库更新如果"读"信息存在于"写"数据库,如果没有则删除,如果是新则插入。

以下是我实现目标的尝试。

sql_cam 从"读取"数据库。 cam_check 从"写"数据库中。

for s,d in zip(sql_cam, cam_check):
            try:
                    if s[0] != d[1]:
                            print 'delete, insert'
                            cursor.execute("""DELETE FROM CamTable WHERE client=?
                                            INSERT INTO CamTable(client, guid, camera, ip, model, firmware, CreationDate)
                                            VALUES(?, ?, ?, ?, ?, ?, ?)
                                           """, client_name, client_name, s[0], s[1], s[2], s[3], s[4], s[5])
                            cnxn.commit()
                    else:
                            print 'update'
                            cursor.execute("""
                            UPDATE CamTable SET camera=?, ip=?, model=?, firmware=?, CreationDate=?
                            WHERE guid=?
                            """, d[1])
                            cnxn.commit()

            except pyodbc.error:
                    pass

0 个答案:

没有答案