2022-01-19.tortoise-orm执行原生sql语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022-01-19.tortoise-orm执行原生sql语句相关的知识,希望对你有一定的参考价值。
参考技术A 最近在做的东西,用上了fastapi+tortoise-orm的技术方案。在fastapi的models.py中,一般是这样写的:
这时候,想用一些原生sql语句执行一些复杂的查询,tortoise提供了一个raw()方法。一般会使用下面的写法:
按此执行,一般会报错,显示keyError year(create_date)之类的信息。
实际上这个问题非常容易解决。只需要在class TableA中声明SELECT的字段就行,即将class修改为如下:
并将year(create_date)的结果储存为year_date字段,形如以下:
这样就可以了。
以上,如果有错误,还请留言批评指正。
2022-01-22 增加:
上文这个方法有问题,这样做了之后,还是会报错:"Unknown column..."
还得在SQL的表里增加对应的字段……这虽然可以使用了,但是很丑。
如果有什么更好的方法,还请不吝赐教。
2022-01-22 增加:
找到一个方法。将models.py 增加引入:
并编辑方法:
这时候,就不需要按文章开头的做法,增加字段,也不需要在SQL的表中增加字段了。
不过,需要注意的是,上面方法获取的结果为dict组成的list,dict的keys为表的字段名(带类型),在使用时无法直接用类的属性获取,需要特别注意。
哎,如果能使用raw()方法,并且对key没有那么些约束就好了。
如果有,还请不吝赐教。
Oracle执行计划总结
Oracle执行计划概述
获取执行计划
- 获取执行计划之Autotrace
- 获取执行计划之explain plan for
- 获取执行计划之dbms_xplan.display_cursor()
- 获取执行计划之dbms_xplan.display_awr()
- 获取执行计划之10046事件
- 获取执行计划之10053事件
- 获取执行计划之AWR
- Oracle获取执行计划总结
看懂执行计划
- 看懂执行计划之执行顺序
- 看懂执行计划之基于规则的优化器(RBO)
- 看懂执行计划之基于成本的优化器(CBO)
- 看懂执行计划之优化器的模式
- 看懂执行计划之表相关执行计划
- 看懂执行计划之Oracle索引
- 看懂执行计划之B-Tree索引相关执行计划
- 看懂执行计划之位图索引
- 看懂执行计划之表连接
- 看懂执行计划之其他执行计划
- 看懂执行计划之稳定执行计划
以上是关于2022-01-19.tortoise-orm执行原生sql语句的主要内容,如果未能解决你的问题,请参考以下文章