Odoo SQL查询

Odoo 使用易于使用的 ORM 技术,从开发人员的角度来看,ORM 方法使用起来很快,但从用户方面来看,它可能是一个缓慢的过程。这会影响用户体验。但是 SQL 查询比 ORM 快。所以最好使用/执行 SQL 查询来加快进程。
在这篇博客中,我们将讨论如何在 Odoo 15 中执行 SQL 查询。
为了执行 SQL 查询,我们在环境 (env) 中有一个属性“cr”。'cr' 是当前数据库直接执行查询的游标。
查看以下示例,了解如何使用 SQL 查询将数据插入 res.company 模型。

# 添加
query = " insert into res_company (name, email)values('熊大,'123@gmail.com')"


# 查询  返回查询结果集 是一个集合
self.env.cr.execute("  select * from res_company")
self.env.cr.fetchone()


# 查询  返回查询结果集 是一个列表套集合
self.env.cr.execute("  select * from res_company")
self.env.cr.fetchall()


# 修改
self.env.cr.execute("  update res_company set name='熊二' where id=1 ")


# 删除
self.env.cr.execute("delete from res_company where id=1")




我们可以使用 self._cr 而不是 self.env.cr 。这两个术语具有相同的结果。


同样随着查询的执行,我们可以使用不同的获取方法。主要有4种获取方法。他们是 :
1. cr.fetchall()
2.cr.fetchone()
3. cr.dictfetchall()
4. cr.dictfetchone()
Fetchall 以元组列表的形式返回匹配的记录。Fetchone 也与 fetchall 相同,但它应该返回单个匹配记录。
Dictfetchall 用于返回匹配记录的字典列表,这些字典具有键值对。Dictfetchone 也与 dictfetchall 相同,但它必须返回单个字典。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值