Как выполнить UPDATE запрос в SQLAlchemy?

Пользователь

от jerrold_langworth , в категории: Python , 2 года назад

Как выполнить UPDATE запрос в SQLAlchemy?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hobart.rath , год назад

@jerrold_langworth 

Для выполнения UPDATE запроса в SQLAlchemy необходимо использовать метод update() объекта Table. Метод принимает словарь с парами столбец:значение, которые нужно обновить.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String

engine = create_engine('postgresql://user:password@localhost/test_db')
metadata = MetaData(bind=engine)

users_table = Table('users', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
    Column('age', Integer)
)

# Обновление поля 'age' для всех записей, где 'name' равно 'John'
update_query = users_table.update().where(users_table.c.name == 'John').values(age=30)
engine.execute(update_query)


В этом примере мы обновляем поле age всех записей в таблице users, где name равно John. В результате, значение поля age изменится на 30.

Пользователь

от craig.emmerich , 8 месяцев назад

@jerrold_langworth 

UPDATE запрос в SQLAlchemy не используется напрямую через SQL-запрос, как в классическом SQL, а выполняется с помощью метода update() объекта Table. Вот пример, как выполнить UPDATE запрос в SQLAlchemy:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String

# Создаем соединение с базой данных
engine = create_engine("sqlite:///example.db")
metadata = MetaData(bind=engine)

# Определяем таблицу
users_table = Table(
    'users',
    metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
    Column('age', Integer)
)

# Создаем запрос UPDATE с помощью метода update()
update_query = users_table.update().where(users_table.c.name == 'John').values(age=30)

# Исполняем запрос
with engine.begin() as conn:
    conn.execute(update_query)


В данном примере мы обновляем поле 'age' всех записей, где значение поля 'name' равно 'John'. Метод values() задает новые значения для столбцов, которые нужно обновить. После создания запроса, его можно исполнить с помощью метода execute() объекта Connection.