xxx_name = 'test1'
obj = Xxx(xxx_type=Xxx.XxxTypeEnum.TYPE_THREE.value, xxx_name=xxx_name, xxx_name_bin=xxx_name)
with db.session.begin():
db.session.add(obj)
- 多条INSERT
- 推荐使用 db.session.bulk_save_objects(objects:
Sequence[object]
)
- objects: 参数说明要求返回一个序列,实际上源码中要求
Iterable[object]
- 对应mysql
batch-insert
xxx_name_list = ['a', 'b', 'c', 'd']
object_gen = (
Xxx(xxx_type=Xxx.XxxTypeEnum.TYPE_THREE.value,
xxx_name=xxx_name, xxx_name_bin=xxx_name)
for xxx_name in xxx_name_list)
with db.session.begin():
db.session.bulk_save_objects(object_gen)
- update(values, synchronize_session=False)
- values:
dict
- synchronize_session:
Literal['evaluate', 'fetch', False] = 'evaluate'
# 返回影响的行数
db.session.query(Xxx).filter(Xxx.xxx_id == 'a872e3f879d13e799acf7ef724eaee21'). \
update({Xxx.xxx_name: 'test11', Xxx.xxx_price: Xxx.xxx_price + '22'}, synchronize_session=False)
"""实际执行SQL
UPDATE t_xxx
SET xxx_name = 'test11'
,xxx_price = (t_xxx.xxx_price + '22')
,update_time = '2021-03-13 10:35:38.610065'
WHERE t_xxx.xxx_id = 'a872e3f879d13e799acf7ef724eaee21';
"""