pymysql执行非查询语句会自动提交事务,关闭事务自动提交

2023-09-21 20:23:15

一、前置条件

在mysql数据库生成数据:

CREATE DATABASE mydatabase;

CREATE TABLE Course (
    CourseID INT PRIMARY KEY,
    CourseName VARCHAR(100),
    Instructor VARCHAR(100),
    Credits INT,
    StudentID INT,
    FOREIGN KEY (StudentID) REFERENCES StudentInformation(StudentID)
);

INSERT INTO CourseInformation (CourseID, CourseName, Instructor, Credits, StudentID)
VALUES
    (1, 'Math', 'John', 3, 1),
    (2, 'English', 'Sarah', 2, 2),
    (3, 'Physics', 'David', 4, 3),
    (4, 'Chemistry', 'Emily', 3, 1);

python执行非查询语句:

import pymysql

# 创建连接
conn = pymysql.connect(host="127.0.0.1",    # 参数根据实际数据填写
                       port=3306,
                       user="root",
                       password="root",
                       database="mydatabase")

# 创建游标
cursor = conn.cursor()

# 执行增加数据sql语句
sql = "insert into course(CourseID,CourseName,Instructor) values(5,'语文','xu');"
cursor.execute(sql)

# 删除游标
cursor.close()

# 删除连接
conn.close()

二、执行效果

三、原因分析

1、python代码没有开启自动提交,默认autocommit=False

2、mysql默认开启了自动提交,autocommit=1(SELECT @@autocommit;),但是执行

set autocommit=0后再次执行该python代码,仍然会自动提交事务即成功添加数据

3、查询数据表的存储引擎

# 查看当前数据库支持的存储引擎
show ENGINES;

# 查看指定数据库所有表使用的存储引擎
show table status from 库名;    

# 查看指定表的存储引擎
show create table 表名;

发现上面sql语句生成的数据表默认的存储引擎是MyISAM,经查询MyISAM不支持事务,需要换成支持事务的存储引擎

四、结论

        使用sql语句没有指定存储引擎会默认使用MyISAM引擎,该引擎不支持事务,需要换成支持事务的存储引擎,例如:Mysql 的InnoDB

        切换到支持事务的引擎之后,使用上述sql语句执行后,MySQL会将这些修改暂时存储在内存中,这些修改被称为"未提交的数据"。在事务提交之前,所有的修改都不会被写入到磁盘上的数据文件中,而是存储在内存中的缓冲区中,只有进行事务的提交或回滚操作才会将执行的结果写入到磁盘上的数据文件中

  • 事务提交(2选1):
1、conn = pymysql.connect(host="127.0.0.1",
                          port=3306,
                          user="root",
                          password="root",
                          database="mydatabase",
                          autocommit=True)    # 开启自动提交


2、conn.commit()    # 事务提交,conn是数据库连接对象
  • 事务回滚:
conn.rollback()    # 事务回滚,conn是数据库连接对象
更多推荐

具体项目下解决Echarts多端同步开发和维护的问题

具体问题场景PC端和移动端需要同时上线图表功能(没有多余工时)之后的版本迭代(功能、样式、配置等)默认双端同步,开发人员只希望维护一套代码Echarts在移动端有部分功能不兼容不支持Echarts在移动端的坑①移动端页面使用echarts4中的地图组件,并添加省份的点击事件,响应click无效,eharts也不支持ta

在Ubuntu 系统下开发GUI,用哪种开发工具比较好?

在Ubuntu系统下开发GUI,你可以考虑使用以下几种开发工具:QtCreator:QtCreator是一个跨平台的集成开发环境,专门用于开发基于Qt框架的应用程序。它提供了丰富的图形界面设计工具和代码编辑器,支持C++和QML编程。QtCreator具有良好的跨平台支持和强大的功能,适用于开发各种类型的GUI应用程序

每天一个注解之@WebService

@WebService@WebService是JavaAPIforXMLWebServices(JAX-WS)中的注解,用于标识一个类或接口作为一个可通过网络访问的Web服务。通过使用@WebService注解,你可以将普通的Java类转换成可发布为Web服务的类。以下是@WebService注解的一些常见用法和示例:

webpack:详解代码分离以及插件SplitChunksPlugin的使用

文章目录背景入口起点分离基本使用防重复SplitChunksPlugin插件分离背景基本使用splitChunks.chunkssplitChunks.minChunkssplitChunks.minSizesplitChunks.maxSizesplitChunks.namesplitChunks.cacheGrou

AI绘图提示词Stable Diffusion Prompt 笔记

基础提示词分为正向提示词(positiveprompt)和反向提示词(negativeprompt),用来告诉AI哪些需要,哪些不需要词缀的权重默认值都是1,从左到右依次减弱,权重会影响画面生成结果。AI会依照概率来选择性执行,如提示词之间有冲突,AI会根据权重确定的概率来随机选择执行哪个提示词。生成图片的大小会影响P

聚观早报 | 飞书签约韵达速递;蔚来首颗自研芯片“杨戬”量产

【聚观365】9月22日消息飞书签约韵达速递蔚来首颗自研芯片“杨戬”10月量产靳玉志接任华为车BUCEO亚马逊发布全新Alexa语音助手OpenAI推出图像生成器DALL-E3飞书签约韵达速递近日,国内物流服务公司韵达快递宣布全员上飞书。飞书解决方案副总裁何斌表示,“飞书将助力韵达快递进行全方面的数字化变革,包括:全场

MySQL数据库操作以及sql语句总结

一、MySQL数据库知识点补充一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证,包括数据字段的数据类型、约束(重点,后面要用)数据类型可以通过查看帮助文档查阅所有支持的数据类型:mysql--help使用数据

解决Vue项目中的“Cannot find module ‘vue-template-compiler‘”错误

1.问题描述在Vue项目中,当我们使用Vue的单文件组件(.vue文件)时,有时会遇到以下错误信息:ERROR:Cannotfindmodule'vue-template-compiler'这个错误通常发生在我们使用Vue的版本不匹配或者缺少必要的依赖模块时。本文将介绍如何解决这个问题。2.解决方法方法一:安装vue-

2023中国智能产业高峰论坛丨文档图像大模型的思考与探索

#前言随着人工智能技术的不断发展,尤其是深度学习技术的广泛应用,多模态数据处理和大模型训练已成为当下研究的热点之一,这些技术也为文档图像智能处理和分析领域带来了新的发展机遇。近期,2023第十二届中国智能产业高峰论坛(CIIS2023)在江西南昌开幕,政企研学各界学者专家同台交流,在成果分享、观点碰撞、经验互鉴中,共促

pytest一些常见的插件

Pytest拥有丰富的插件架构,超过800个以上的外部插件和活跃的社区,在PyPI项目中以“pytest-*”为标识。本篇将列举github标星超过两百的一些插件进行实战演示。插件库地址:http://plugincompat.herokuapp.com/1、pytest-html:用于生成HTML报告一次完整的测试,

GRACE球谐数据滤波处理(利用matlab实现GRACE月水储量的二维傅里叶变化滤波)

GRACE的全球重力场产品以球谐系数(SHCs)的形式表现出明显的南北条带噪声问题,这种噪声被认为来源于它的极轨道、缺乏横向敏感性以及采样频率引起的混叠效应。空间滤波器的例子包括各向同性高斯滤波器(Wahretal.,1998)及其非各向同性变体(Hanetal.,2005;Zhangetal.,2009),维纳滤波器

热文推荐