UPDATE语句是否有任何限制?
答
是的,但是这取决于你的存储引擎和一些选项:
- 的
--safe-updates
选项禁止您更新,除非“您指定的WHERE
子句中的一个主要制约或提供LIMIT
条款行(或两者)“ - InnoDB(默认存储引擎)是事务性的,并在操作期间锁定所有受影响的行,这将限制并发访问。如果发生错误以回滚更改并稍后从中恢复,则可以使用此功能。
- MyISAM(广泛使用的旧引擎)速度更快,但稳健性更差,如果在大型更新期间发生错误,您可能会失去更改。
否则,这种操作并不是那么不寻常,所以如果您使用的是正确的存储引擎,除了在更新期间性能降低之外,您将毫无困难。
是的,总有可能出现问题(数据完整性,不正确的值,资源压力......)。 – lad2025
不,我没有提供任何参数查询,我只想重置表中的标志,并且表中包含非常大的数据集。 –
我想你是问你是否需要在脚本中进行错误处理?是的,除非你不在乎它是否失败。即使你的脚本不需要参数,它可能会因为几个原因失败,lad列出了一些,还有更多,但因为你只是询问是否有*任何*,所以应该足够了。 – Solarflare