Python DB Update with SQLAlchemy + posgtresql



这是我通过sqlalchemy orm更新postgresql DB表的代码:

db_car_record = session.query(CarsTable).update({CarsTable.CarId : 37805,
CarsTable.AuctionId : 879})
session.commit()

我收到重复密钥错误。你有什么想法吗?

sqlalchemy.exc.IntegrityError: (psycopg2.IntegrityError) duplicate key value violates unique constraint "ix_carstable_CarId"
DETAIL:  Key ("CarId")=(37805) already exists.
[SQL: 'UPDATE carstable SET "AuctionId"=%(AuctionId)s, "CarId"=%(CarId)s,
updated_on=%(updated_on)s'] [parameters: {'updated_on': datetime.datetime(2017, 8, 12, 3, 49, 23, 115733), 'CarId': 37805, 'AuctionId': 879}]

您想更改 CarId 为 37805 的汽车的拍卖 ID?

car_to_change = session.query(CarsTable).filter(CarsTable.CarId==37805).first()
car_to_change.AuctionId = 879
session.commit()

您还可以执行以下操作:

# Notice difference between `filter` and `filter_by`
car_to_change = session.query(CarsTable).filter_by(CarId=37805).first()
car_to_change.AuctionId = 879
session.commit()

这里有一个教程,可以帮助你入门:http://docs.sqlalchemy.org/en/latest/orm/tutorial.html

最新更新