2009-09-27 12 views
7

Mit Postgres in Python,Ersetzen/Löschen Feld sqlalchemy mit

  1. Wie ersetze ich alle Felder aus der gleichen Spalte, die einen bestimmten Wert überein? Angenommen, ich möchte alle Felder, die mit "grün" übereinstimmen, durch "rot" in der Spalte "Farbe" ersetzen.

  2. Wie löscht man alle Felder aus der gleichen Spalte, die einem bestimmten Wert entsprechen? Ich versuche beispielsweise alle Felder zu löschen, die in der Spalte "Farbe" mit "grün" übereinstimmen.

Antwort

9

Ad1. Sie benötigen etwas wie dieses:

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

Ad2. Ähnlich:

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

Sie finden das anfragende Dokumentation here und here.

+0

Ich denke, die zweite Antwort löscht die gesamte Zeile. Ich möchte eigentlich nur das Feld löschen. – teggy

+0

Ich habe versucht, so etwas zu verwenden, um das Feld leer zu machen, aber es scheint nicht zu funktionieren: session.query (Foo) .filter_by (color = 'grün'). Update ({'color': ''}) – teggy

+1

Versuch 'Farbe ': Keine – iElectric