我是靠谱客的博主 震动大雁,最近开发中收集的这篇文章主要介绍sqlalchemy 踩过的坑,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

记录下Sqlalchemy遇到的问题,不定时更新。


 设置主键为非自增

 sqlalchemy 在sql server中默认主键是自增的,如果在数据库设置的主键不是自增的,这个时候插入就会出现异常:

 提示does not have the identity property

 这个时候需要在主键中设置autoincrement=False,显示表示非自增,才能正常写入


 不要使用in_查询一个空的可迭代对象

例如:

db.session.query(Object).filter(Object.Id.in_(ids)).delete(synchronize_session=False)

当ids为空的可迭代的对象时,就会出现如下警告,提示有性能问题

SAWarning: The IN-predicate on "xxxx.Id" was invoked with an empty sequence. This results in a contradiction, which nonetheless can be expensive to evaluate.  Consider alternative strategies for improved performance.

在创建这个语句之前做个判断,判断ids是不是为空。

 

转载于:https://www.cnblogs.com/blackmatrix/p/6907156.html

最后

以上就是震动大雁为你收集整理的sqlalchemy 踩过的坑的全部内容,希望文章能够帮你解决sqlalchemy 踩过的坑所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部