pyDAL一个python的ORM(8) pyDAL的commit()方法

2024-01-08 12:36
文章标签 python 方法 commit orm pydal

本文主要是介绍pyDAL一个python的ORM(8) pyDAL的commit()方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、db.commit()介绍

    pyDAL在使用过程中,所有对表和表中数据的增删改操作,必须写一句:db.commit()才能提交数据库生效

(1)表操作

define_table、drop、truncate

(2)数据操作

insert、update、delete、update_record、update_or_insert

例如,增加一条数据,这样才是完整的:

db.person.insert(name="Alex",dept='finance',id='001')

db.commit()

二、db.commit()注意事项

如果我们每条数据增删改的指令都db.commit(),效能会变低,考虑到并发,稳妥的做法是每次都commit,但也不能 一味求稳 我们需要灵活掌握:

例如我们在做 循环或批量 增改数据,我们确定 每个增改 不立即生效 也不会发生并发问题 或者 每个增改结果 不必立即引用,那可以 循环和批量结束 db.commit() 一次,这样能减少开销

例如:我们插入3条数据

names=['sarah','david','smith']

ids=['003','004','005']

for i in range(0, len(names)):

    db.person.insert(name=names[i],dept='finance',id=ids[i])

db.commit()

三、update_or_insert注意事项

   显然如果我们 用的是update_or_insert”必须每次都commit,因为我们的增改结果需要马上引用,所以要实时更新,不然就不准确了:

for i in range(0, len(names)):

    db.person.update_or_insert(db.person.id.belongs(ids),name=names[i],dept='finance',id=ids[i])

    db.commit()

四、为什么web2py不必commit?

   因为web2py框架会根据事务完成情况,自动执行commitrollback(如果有异常),手册原话是:

      in models, views and controllers there is no need to ever call commit or rollback explicitly in web2py unless you need more granular control. However, in modules you will need to use commit()

这篇关于pyDAL一个python的ORM(8) pyDAL的commit()方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/583471

相关文章

Python使用Pandas对比两列数据取最大值的五种方法

《Python使用Pandas对比两列数据取最大值的五种方法》本文主要介绍使用Pandas对比两列数据取最大值的五种方法,包括使用max方法、apply方法结合lambda函数、函数、clip方法、w... 目录引言一、使用max方法二、使用apply方法结合lambda函数三、使用np.maximum函数

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程