gpt4 book ai didi

mysql - 一个 MySQL 查询中的多个更新可以模拟事务行为吗?

转载 作者:行者123 更新时间:2023-11-29 00:09:11 25 4
gpt4 key购买 nike

我正在使用 MySQL MyISAM,这无法更改。但是,我只熟悉事务方法。由于 MyISAM 不支持事务,我正在考虑将两个更新查询合并为一个,如下所示:

UPDATE table1, table2 SET table1.col1='value1', table2.col1='value2'
WHERE table1.col3='567' AND table2.col6='876'

这是否保证如果任何一个子查询失败,另一个子查询也不会执行并且查询将返回 FALSE?

为了对此进行测试,我特意将有效的字段名称替换为表 1 的无效字段名称,然后是表 2 的字段名称。在这两种情况下,phpMyAdmin 都返回了错误,并且两个查询都没有执行。

如果出现任何其他查询错误,是否会观察到此行为?

最佳答案

你只能依赖在第一个错误抛出后没有执行的任何东西(这些错误通常不是在程序员而是在数据库级别,因此很难预测)。此时已写入数据库的任何内容都不会回滚(毕竟,您正在使用不支持该功能的 MyISAM 表)。

这不是您想听到的答案,但如果您想要可预测且可靠的事务行为,真正唯一的方法是使用支持它们的引擎(例如 InnoDB)。

关于mysql - 一个 MySQL 查询中的多个更新可以模拟事务行为吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26061130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com