Psycopg2 Вставить в с условиями - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть эта таблица в 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 в конце моей таблицы.

 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 голосов
/ 27 сентября 2018

Я думаю, что-то вроде этого:

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

Редактировать: использовать оператор UPDATE sql согласно ответу @ Девасты.

0 голосов
/ 27 сентября 2018

Вам нужно использовать запрос UPDATE вместо INSERT

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