当前位置: 首页 > news >正文

网站打开显示建设中云南建设厅查证网站

网站打开显示建设中,云南建设厅查证网站,企业为什么做网站优化推广,那些网站可以给产品做推广可以把事务理解为一系列操作的集合#xff1a;这些操作要么全部执行#xff0c;要么一个也不执行——这样就可以保证数据的一致性和可靠性。在执行更新和删除操作时#xff0c;尤其要注意利用事务的这个特征。 SQLAlchemy中提供了许多方法来利用事务。 1、如何确保操作生效…可以把事务理解为一系列操作的集合这些操作要么全部执行要么一个也不执行——这样就可以保证数据的一致性和可靠性。在执行更新和删除操作时尤其要注意利用事务的这个特征。 SQLAlchemy中提供了许多方法来利用事务。 1、如何确保操作生效以及为操作“上保险” 已经知道从Engine生成一个Connection对象并执行一些操作的方式如下 from sqlalchemy import create_engine, text engine create_engine(sqlitepysqlite:///:memory:, echoTrue, futureTrue) # 存储在内存中的sqlite数据库这样可以无须启动任何服务也不会产生任何文件。with engine.connect() as conn:result conn.execute(text(select 11;))由于设置了打印执行日志echoTrue可以在python console中看到整个执行过程 2023-06-01 16:03:30,189 INFO sqlalchemy.engine.Engine BEGIN (implicit) 2023-06-01 16:03:30,190 INFO sqlalchemy.engine.Engine select 11; 2023-06-01 16:03:30,190 INFO sqlalchemy.engine.Engine [generated in 0.00025s] () 2023-06-01 16:03:30,190 INFO sqlalchemy.engine.Engine ROLLBACK实际上上述语句的执行过程是先开启了一个事务然后执行对应的操作最后再回滚。也就是说通过engine.connect()获取的连接对象在执行完操作后默认是将事务回滚的从而不对数据库的数据产生任何影响。因此如果用户想要执行增删改等操作那么必须显示地进行提交 with engine.connect() as conn:conn.execute(text(CREATE TABLE some_table (x int primary key, y int)))conn.execute(text(INSERT INTO some_table (x, y) VALUES (:x, :y)),[{x: 1, y: 1}, {x: 2, y: 4}],)conn.commit() # 必须手动提交否则更改不会生效利用上述特性将所有需要进行的操作放到一起最后提交就可以保证要么全部生效要么都不生效 with engine.connect() as conn:conn.execute(text(delete from some_table where x1))conn.execute(text(insert into some_table (x, y) values (2, 3)))# 插入操作由于主键冲突无法执行那么上一条删除操作也不会生效conn.commit()利用try...except...可以进一步对上述语句进行包装 with engine.connect() as conn:try:conn.execute(text(delete from some_table where x1))conn.execute(text(insert into some_table (x, y) values (2, 3)))conn.commit()print(成功)except:conn.rollback()print(失败回滚)2、通过engine.begin()来封装为事务 通过engine.begin()也可以获得一个连接对象所不同的是这样获得的连接对象在执行操作后会自动进行提交。如果执行过程中出错则会自动回滚 with engine.begin() as conn:conn.execute(text(delete from some_table where x1))conn.execute(text(insert into some_table (x, y) values (2, 3)))可以在console中看到如下信息 2023-06-01 17:38:06,526 INFO sqlalchemy.engine.Engine BEGIN (implicit) 2023-06-01 17:38:06,527 INFO sqlalchemy.engine.Engine delete from some_table where x1 2023-06-01 17:38:06,527 INFO sqlalchemy.engine.Engine [cached since 1692s ago] () 2023-06-01 17:38:06,527 INFO sqlalchemy.engine.Engine insert into some_table (x, y) values (2, 3) 2023-06-01 17:38:06,528 INFO sqlalchemy.engine.Engine [cached since 1692s ago] () 2023-06-01 17:38:06,528 INFO sqlalchemy.engine.Engine ROLLBACK [错误信息]最后的ROLLBACK表明语句执行过程中出现了错误。 类似地利用try...except...可以进一步捕获错误 try:with engine.begin() as conn:conn.execute(text(delete from some_table where x1))conn.execute(text(insert into some_table (x, y) values (2, 3))) except Exception as e:print(f出错回滚, {e})
http://www.hkea.cn/news/14402101/

相关文章:

  • 怎么建设菠菜网站莱芜区平台公司
  • 北京手机网站制作哪家好扬州自适应网站建设
  • 景点网站模板大型网站seo方案
  • 网站建设需要考什么证四川建筑设计公司排名
  • 深圳南山区网站建设c#网站开发网易云课堂百度云下载
  • 西部数码网站管理助手2.0互动平台领手机
  • 部门网站建设情况总结学做美食视频网站
  • 有关网站建设的书农林科技公司网站模板
  • 查降权网站长沙做网站排名
  • 南宁网站排名优化公司哪家好龙华网页设计公司网站
  • 服务器如何搭建网站百度提交网站入口
  • wordpress the_terms商丘seo公司
  • 公司备案查询网站备案企业站网页制作实训步骤
  • 学做效果图网站有哪些软件简述seo的应用范围
  • 5 电子商务网站建设的步骤网站建设 电脑 手机
  • 中国还有哪些做外贸的网站永嘉网站制作
  • 官方网站是 优帮云网站查询系统
  • 旅游村庄网站建设方案口碑好的网站定制公司
  • 大型网站服务器价格首页关键词优化价格
  • 外贸营销网站建设介绍网站开发可行性
  • 那些网站可以做条形码网站关键词优化案例
  • 网站流量共享2018江苏省海门市建设局网站
  • 天津做网站需要多少钱国外网站建设软件排行榜
  • 信息型网站有哪些东湖南昌网站建设公司
  • 网站建设公司网站源码网站锚文本
  • 哪些网站有任务做借个网站备案号
  • 药品网站网络营销推广怎么做怎么做网站教程+用的工具
  • 做幼儿网站的目标巴彦淖尔市网站建设
  • 西安企业网站建设哪家专业站长收录平台
  • 公司网站建设全包什么是网络营销网络营销的内容有哪些