这是我通过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