首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql.connector.cursor.execute()静默地执行,但是尽管使用了commit(),也没有做任何更改

mysql.connector.cursor.execute()是Python中用于执行MySQL语句的方法。它可以执行任何有效的MySQL语句,包括查询、插入、更新和删除操作。在执行execute()方法后,需要调用commit()方法才能将更改提交到数据库中。

这个方法的静默执行指的是在执行过程中不会返回任何结果或错误信息,它只是默默地执行语句并返回执行结果的行数。如果执行过程中出现错误,可以通过调用cursor的error属性来获取错误信息。

尽管使用了commit()方法,但是没有做任何更改可能有以下几种情况:

  1. 执行的是查询语句,查询语句不会对数据库中的数据进行修改,所以即使调用了commit()方法也不会有任何更改。
  2. 执行的是修改语句(如更新或删除),但是修改的目标行不存在或者满足条件的行数为0,因此不会对数据库中的数据做任何更改。在这种情况下,可以通过cursor的rowcount属性来获取受影响的行数。
  3. 执行的是修改语句,但是在调用commit()方法之前发生了错误,导致事务回滚,所以没有任何更改被提交到数据库中。

需要注意的是,如果要使修改操作生效,必须在执行修改语句后调用commit()方法。否则,修改只会在数据库连接关闭时回滚。

关于腾讯云相关产品,推荐使用腾讯云数据库(TencentDB)作为MySQL数据库的托管服务。腾讯云数据库提供高可用、高性能、安全可靠的数据库服务,支持自动备份、灾备恢复、性能优化等功能。您可以通过访问腾讯云官网的TencentDB产品介绍页面获取更多信息:TencentDB产品介绍

请注意,上述提供的是腾讯云相关产品的示例,与亚马逊AWS、Azure、阿里云、华为云、天翼云、GoDaddy、Namecheap、Google等品牌商无关。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何优雅的使用 git pull ?

#1 pick 9480b3d Message for commit #2 pick 5c67e61 Message for commit #3 此列表准确定义了执行 rebase 后分支的外观。...通过更改 pick命令或重新排序条目,你可以使分支的历史记录看起来像你想要的任何内容。...Message for commit #2 pick 5c67e61 Message for commit #3 保存并关闭文件时,Git将根据您的指示执行 rebase,从而产生如下所示的项目历史记录...此时,同步两个 master 分支的唯一方法是将它们合并在一起,但是这样会产生额外的合并提交和两组包含相同更改的提交(原始提交和通过 rebase 更改的分支提交)。...但是,通过在 merge 之前执行 rebase,你可以确保会以 fast-forward 方式 merge,从而产生完美的线性历史记录。

1.4K30

Merge vs Rebase

现有分支结构不会以任何方式更改。这避免了rebase的所有潜在缺陷(下面讨论)。 另一方面,这也意味着每次上游更改时feature都需要合并,且有无关的合并提交。...尽管可以使用高级git log选项减轻此问题的影响,但它可能使其他开发人员难以理解项目的历史更改记录。...#1 pick 9480b3d Message for commit #2 pick 5c67e61 Message for commit #3 列表准确给出了执行rebase后分支的概况。...否则,你可以随心所欲重写历史记录。 强制推 如果你尝试将rebase过的master分支推到远程仓库,Git将阻止你这样,因为它与远程master分支冲突。...但是,通过在合并之前执行rebase,你可以确保合并产生完美的线性历史记录。这也使你有机会压缩在拉取请求期间添加的任何后续提交。 ?

1.6K21
  • JavaScript 严格模式

    使用严格模式可以限制 JavaScript 的一些语言特性,使用严格模式可以去除在书写代码时的一些“骚操作”(有些特性在严格模式下是不可用的),使代码更严谨整洁。...严格模式对正常的 JavaScript 语义做了一些更改: 严格模式通过抛出错误来消除了一些原有静默错误; 严格模式修复了一些导致 JavaScript引擎难以执行优化的缺陷:有时候,相同的代码,严格模式可以比非严格模式下运行得更快...严格模式中的变化 首先看几个例子,在不使用严格模式下运行代码是什么结果,而使用了严格模式又是什么结果。 1....静默失败以及禁用 使用严格模式会引起静默失败,静默就是有些操作是不能完成的,但运行代码不报错也没有任何效果。...eval 会将传入的字符串执行,然后将返回(或者赋值)的变量返回。而且 "use strict" 严格模式标志可以写进 eval 函数中执行

    96410

    如何在远程服务器上运行Jupyter Notebooks?

    最后,我在ssh命令中添加了-f标志,以将进程推送到后台,并在前面加上nohup命令,使进程的所有输出保持静默,以便您可以继续使用终端窗口。您可以在这里阅读有关thenohup命令的更多信息。...remote_server_ip -N标志告诉ssh不会执行任何远程命令。...此时,我们不需要执行任何远程命令。如前所述,-f标志将ssh进程推到后台。...与前面一样,nohup命令的前缀是使输出静默。 上述命令的效果是,您现在可以访问浏览器中的远程木星笔记本服务器 1localhost:8889 就像你在本地运行笔记本一样。...我希望这些命令可以提高您的数据科学生产力,几乎无缝允许您从Jupyter Notebook和远程服务器上可用的任何计算资源中获益。 ? End

    3.9K20

    Solr学习笔记 - 关于近实时搜索

    如果指定了另一个标志softCommit=true,那么Solr将执行一个“soft commit”,这意味着Solr将快速将您的更改提交到Lucene数据结构中,但不能保证将Lucene索引文件写入到稳定的存储中...执行提交时是否打开新的搜索器。如果为false,则提交将把最近的索引更改刷新到稳定存储,但不会打开新的搜索器以使这些更改可见。默认值为true。...如果达到了maxDocs、maxTime或maxSize的任何限制,Solr将自动执行提交操作。如果autoCommit未设置,那么只有显式的commit将更新索引。...这最常用于Near Real Time Searching,因此默认执行soft commit但是,这并不会将新文档复制到主/从环境中的从服务器。...hard commit还可以选择性地使文档在搜索中可见,但是不建议在NRT搜索中这样,因为它比soft commit的开销更大。

    4.6K10

    加速MySQL的alter table操作(书摘备查)

    MySQL执行大部分更改操作都是新建一个需要的结构的空表,然后把所有老的数据插入到新表,最后删除旧表。这会耗费很多时间,尤其是在内存紧张,而表很大并有很多索引的时候。...列的默认值实际保存在表的.frm文件中,因此可以不接触表而更改它。MySQL没有使用这种优化,而是任何modify column都会导致表重建。...但是可以使用alter column改变列的默认值: alter table film alter column rental_duration set default 5; 这个命令更改了.frm...执行flush tables with read lock。这会关闭所有正在使用的表,并且防止任何表被打开。 交换.frm文件。 执行unlock tables释放读锁。...使用它需要承担风险,要先备份数据): 创建一个有需要的结构的表,但是没有任何索引。 把数据加载到表中,以构建.MYD文件。 创建另一个有需要结构的表,这次包含索引。这会创建.frm和.MYI文件。

    1.4K31

    ElasticSearch 持久化变更

    为了使 Elasticsearch 具有可靠性,我们需要确保将更改持久化到磁盘上。...(4) 每隔一段时间,例如 Translog 变得非常大,索引被刷新 flush 到磁盘,一个新的 Translog 被创建,并执行一个全量提交: 内存缓冲区中的任何文档都将写入新的段。...启动时,Elasticsearch 将使用最后一个提交点从磁盘中恢复已知的段,然后将重新执行 Translog 中的所有操作,以添加最后一次提交后发生的更改。...这意味着它总是能够实时获取到文档的最新版本。 2. flush API 在 Elasticsearch 中执行提交和截断 Translog 的操作被称作一次 flush。...在每个请求之后执行 fsync 都会带来一些性能消耗,尽管实际上相对较小(特别是对于bulk导入,在单个请求中平摊了许多文档的开销)。

    1.2K40

    超硬核解析Apache Hudi 的一致性模型(第一部分)

    尽管写入两个位置,但 Hudi 写入操作是原子操作,因为对时间线的最终写入使文件组中的任何新文件可见。因为没有现有文件是突变的,而且单个文件的最终提交使所有新文件同时可见,所以我们得到了这种原子性。...但是总的来说,记住 Hudi 主键设计是有帮助的,这使自己与 Apache Iceberg 和 Delta Lake 区分开来。在此分析中会将主键简单称为键。...当存储支持 PutIfAbsent 时,写入端将在文件名已存在的任何时间线或文件组写入中止。否则,它将静默覆盖具有相同文件名/路径的现有文件。 • 操作基于 KV 对,具有更新插入或删除功能。...但是在每个写入端都执行大批量的情况下,我认为这种好处会有所减少,因为每个操作都可能涉及大量文件组。...v5 规范明确指出,时间戳应该是单调的,不这样会违反规范。但是我想了解碰撞的影响,并了解在实践中发生此类碰撞的概率。在评估实现对规范的符合程度时,这些知识将很有用。这是第 2 部分的主题。

    22111

    在 Swift 中编写脚本:Git Hooks

    每次提交都包含这些信息可能会有点乏味(如果你使用了类似TDD[1]之类的方法,您会提交的更加频繁),而且,尽管像Tower[2]这样的git客户端会让此变得容易一些,但是您仍然需要手动将问题编号复制粘贴到提交消息中...,并且记住这样,这是我最难以解决的问题。...在本例中,我使用了 commit-msg 钩子,它能够在当前提交信息生效前修改此信息。钩子由一个参数调用,该参数是指向包含用户输入的提交消息的文件的路径。...让我们开始吧 你可以使用任何你喜欢的IDE编写Swift脚本。但是如果你想要有适当的代码补全以及调试能力,你可以为其创建一个Xcode项目。...---- 注意: 根据git hooks文档,如果任何钩子脚本返回的状态码大于0,它都将终止即将要要发生的操作。这将在本文后面的部分中使用,以便在不需要做任何修改而优雅退出。

    1.5K10

    Git 版本控制的核心概念

    由于此时 Git 尚未实际保存(提交)任何内容,你可以简单进行所需的新更改,然后将这些更改添加到临时区域,即使这些更改发生在与先前添加的文件相同的文件中。...当你准备开始一个新项目时,应该执行的第一步(创建项目文件夹之后)是运行: git init ? 这允许 Git 立即开始跟踪你对项目所做的任何更改。...但是,将文件一次一个添加到暂存区域是很麻烦的,特别如果有许多任务需要你去处理很多文件的话。...git commit 一旦你准备好创建一个提交,就可以用 git commit 命令。但是,还记得你是如何添加备注的吗?...你也可以用 -m 标志,然后在引号中使用字符串消息,使你的 git commit 与消息保持一致。

    98350

    2PC时代即将结束,2PC只是提供原子性提交而不是事务本身

    尽管使用了几十年,但是由于缺乏云环境的支持,它却一直在稳步下降。 过去在相当长的一段时间里,它是构建企业分布式系统的实际标准。...我们的示例假定队列事务首先提交,但是2PC并没有说明参与者提交的顺序。它是不确定的,每次执行时可以针对同一组参与者进行更改。 最有趣的是外部观察者,即客户。它向两个参与者发出读取请求。...2PC中也没有任何东西可以阻止将协调器实现为法定人数的流程。 最后,如果所有各方(协调者和所有参与者)都在同一本网络上,单个群集上或单个VM内运行,那么网络分区的可能性是多少?...使云服务能够充当2PC参与者有效为拒绝服务(DoS)攻击打开了大门。 2PC不是唯一的提交协议 2PC只是原子提交的一种可能解决方案。它在某些情况下工作良好,但在违反其假设的环境中使用时性能较差。...尽管2PC的时代即将结束,但是很高兴知道我们需要在构建的系统中通过其他方式提供什么保证。

    71110

    Python 进阶指南(编程轻松进阶):十二、使用 Git 组织您的代码项目

    但是即使你独自工作,也没有任何编程项目小到不能从版本控制中获益。...这些帮助页面便于参考,尽管它们太枯燥、太专业,不能用作教程。稍后您将了解到关于这些命令的更多细节,但是首先,您需要理解一些 Git 概念,以便更容易理解本章的其余部分。...但是用单个git commit –am 命令这样更容易: C:\Users\Al\wizcoin>git commit -am "Fixed the currency...尽管版本控制允许您将文件回滚到较早的提交,但是您可能想知道应该多长时间提交一次。如果过于频繁提交,您将很难在大量无关紧要的提交中找到您要找的代码版本。...运行git revert -n HEAD~3..HEAD来撤销这些更改,然后运行git add .和git commit -m " "来提交该内容,就像您处理任何其他更改一样

    1.2K30

    Linux 初学者:移动文件

    可以确定的是,你可能会看到有些可执行文件是以 .sh 结尾暗示它们是可执行的脚本,但是这大部分是为了便于人眼找到文件,就像你使用 ls --color 将可执行文件的名字以亮绿色显示的方式相同。...决定一个文件是否是一个真正程序的是 x (指可执行的)位。你可以通过运行以下命令使任何文件变得可执行, chmod a+x some_program 而不管它的扩展名是什么或者是否存在。...你可以通过 “触摸” (touch)来创建一个空的文件, touch test.txt 会创建一个文件,但是不会在任何应用中打开它。...同样的,警惕,当你复制一个文件到一个已经包含相同名字的文件的目录时,cp 会静默用新文件覆盖老的文件。...我个人喜欢包含 -v 选项,因为它使 cp 冗长而啰嗦,意味着它会显示你当前它正在做什么而不是仅仅静默的复制然后存在。 mv 命令移动东西。也就是说,它移动文件从一个位置到另一个位置。

    2K20

    2018-07-12 Oracle for update和for update nowait的区别Oracle for update和for update nowait的区别

    ,也就是Oracle对 select 读到的数据不会有任何限制, 虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果, 但是因为没有锁,所以select...如果加入了for update, 则Oracle一旦发现(符合查询条件的)这批数据正在被修改,则不会发出该select语句查询,直到数据被修改结束(被commit),马上自动执行这个select语句。...如果仅仅用update语句来更改数据时,可能会因为加不上锁而没有响应、莫名其妙等待,但如果在此之前,for update NOWAIT语句将要更改的数据试探性地加锁,就可以通过立即返回的错误提示而明白其中的道理...当这些行被锁定后,其他会话可以选择这些行,但不能更改或删除这些行,直到该语句的事务被commit语句或rollback语句结束为止。...但是如果涉及到多表操作的时候 for update of columns就起到了非常大的作用了。现假定有二个用户,scott和mm。

    1.7K20

    SAP ABAP 详细解析关于COMMIT WORK 和COMMIT WORK

    要在 永久存储之 前取消一些 更改,请使 用 ROLLBACK WORK 语句。...在 COMMIT WORK 语句以后, 对数据库所 作的所有更 改都不能再 取消。 但是,如果 在 LUW 中出现了错 误,就必须 取消已经执 行的部分。...这意味着当 前没有任何 插入的行能 永久地保存 在数据库中 。要撤销当 前 LUW 对数据库的 更改,请使 用 ROLLBACK WORK, 它将取消前 一次数据库 提交后的所 有更改。...要确认对数 据库表的更 改并使它们 不能再取消 ,请按如下 格式使用 COMMIT WORK 语句: 语法 COMMIT WORK [AND WAIT]....如果 SY-SUBRC 返回一个非 零值,就没 有成功取 消所作的更 改。 使用 COMMIT WORK 和 ROLLBACK WORK 语句的结果 是将丢失所 有的数据库 光标。

    2.6K30
    领券