PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zaktualizuj tablicę PostgreSQL za pomocą SQLAlchemy

Jeśli Twoja tabela jest zdefiniowana w ten sposób:

from datetime import datetime
from sqlalchemy import *
from sqlalchemy.dialects.postgresql import ARRAY

meta = MetaData()
surveys_table = Table('surveys', meta,
    Column('surveys_id', Integer, primary_key=True),
    Column('questions_ids_ordered', ARRAY(Integer)),
    Column('created_at', DateTime, nullable=False, default=datetime.utcnow)
)

Następnie możesz po prostu zaktualizować swoją tablicę w następujący sposób (działa z psycopg2):

engine = create_engine('postgresql://localhost')
conn = engine.connect()
u = surveys_table.update().where(surveys_table.c.id == 46).\
     values(questions_ids_ordered=[237, 238, 239, 240, 241, 242, 243])
conn.execute(u)
conn.close()

Lub, jeśli wolisz, napisz surowy SQL za pomocą text() konstrukcja:

from sqlalchemy.sql import text
with engine.connect() as conn:
    u = text('UPDATE surveys SET questions_ids_ordered = :q WHERE id = :id')
    conn.execute(u, q=[237, 238, 239, 240, 241, 242, 243], id=46)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Generowanie uporządkowanej rangi sekwencji na złożonym zapytaniu

  2. Czy powinienem odłączyć(), jeśli używam connect_cached() Apache::DBI?

  3. Postgres to najfajniejsza baza danych – Powód #2:Licencja

  4. Błąd Heroku:ActionView::Template::Error (niezdefiniowana metoda `captcha' dla #<Message:0x007fc9df016930>)

  5. Czy istnieje sposób na zmianę domyślnych znaczników czasu Railsów na Y-m-d H:i:s (zamiast Y-m-d H:i:s.u) lub aby laravel ignorował część dziesiętną Y-m-d H:i:s.u?