SQLalchemy Core, получить идентификаторы обновленной строки / строк - PullRequest
1 голос
/ 15 января 2020

Я пытаюсь научиться правильно использовать ядро ​​SQlalchemy, и в настоящее время у меня есть этот запрос.

        up = Airport.__table__.update().where(Airport.__table__.c.iata_code == iata_code).values(city=city)

Я использую его для обновления значений в таблице с такой структурой:

class Airport(Base):
    __tablename__ = 'airports'

    id = Column(Integer, primary_key=True)
    iata_code = Column(String(64), index=True, nullable=False)
    city = Column(String(256), nullable=False)

Проблема в том, что после выполнения процедуры обновления мне нужны идентификаторы обновленные строки. Можно ли обновить значения и получить идентификаторы только в одном запросе? Я хотел бы избежать выполнения 2 запросов для этой операции.

Используемая СУБД: mysql.

1 Ответ

2 голосов
/ 15 января 2020

Отказ от ответственности: Это для SQLAlchemy ORM, а не Core

Получите объект и обновите его. SQLAlchemy обновит идентификатор экземпляра в том же цикле обмена данными БД.

airport = Airport.filter_by(Airport.__table__.c.iata_code == iata_code).first()
airport.city = city
db.session.commit()
print(airport.id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...