Psycopg2插入有条件

时间:2018-09-27 12:12:41

标签: python postgresql psycopg2

我在Postgres中有这张桌子

 ID|     | IP             | Remote-as  | IRR-Record |   
 1 |     | 192.168.1.1    |100         |            |        
 2 |     | 192.168.2.1    |200         |            |       
 3 |     | 192.168.3.1    |300         |            |        
 4 |     | 192.168.4.1    |400         |            |      

我想为每个IP地址添加IIR记录。 IIR记录位于变量内。

c = conn.cursor()
query = 'select * From "peers"'
c.execute(query)

 for row in c:
       c.execute('''INSERT INTO "peers" ("IRR- 
   Record") VALUES(variable)
       conn.commit()

此代码不起作用,因为我在表末尾盖住了IIR-Record。

 ID|     | IP             | Remote-as  | IRR-Record |   
 1 |     | 192.168.1.1    |100         |            |        
 2 |     | 192.168.2.1    |200         |            |       
 3 |     | 192.168.3.1    |300         |            |        
 4 |     | 192.168.4.1    |400         | 
                                       |Variable
                                       |Variable
                                       |Varibale

任何想法!!!

2 个答案:

答案 0 :(得分:1)

您需要使用UPDATE查询而不是INSERT

UPDATE peers
SET IRR-Record = <<MYVALUE>>
WHERE ID = <<MYID>>

答案 1 :(得分:0)

我认为是这样的:

for row in c:
    c.execute('UPDATE peers SET "IRR-Record"=%s WHERE ID=%s', (record_var, id_var))

编辑:按照@Devasta的答案使用UPDATE sql语句。