2009-09-27 5 views
7

Utilizzando Postgres in pitone,Sostituire/eliminare campo utilizzando sqlalchemy

  1. Come faccio a sostituire tutti i campi della stessa colonna che corrisponde a un valore specificato? Ad esempio, supponiamo di voler sostituire tutti i campi che corrispondono a "verde" con "rosso" nella colonna "Colore".

  2. Come eliminare tutti i campi dalla stessa colonna che corrispondono a un valore specificato? Ad esempio, sto tentando di eliminare tutti i campi che corrispondono a "verde" nella colonna Colore.

risposta

9

Ad1. Hai bisogno di qualcosa di simile:

session.query(Foo).filter_by(color = 'green').update({ 'color': 'red' }) 
session.commit() 

Ad2. Allo stesso modo:

session.query(Foo).filter_by(color = 'green').delete() 
session.commit() 

È possibile trovare la documentazione di interrogazione here e here.

+0

Penso che la seconda risposta cancelli l'intera riga. In realtà voglio solo cancellare il campo. – teggy

+0

Ho provato a usare qualcosa di simile per rendere il campo vuoto ma non sembra funzionare: session.query (Foo) .filter_by (color = 'green'). Update ({'color': ''}) – teggy

+1

Prova 'colore ': Nessuno – iElectric