gpt4 book ai didi

mysql - 开始...结束与开始交易...提交

转载 作者:行者123 更新时间:2023-12-02 02:47:12 25 4
gpt4 key购买 nike

做和做有什么区别:

START TRANSACTION
...
COMMIT

或者做:

BEGIN
...
END

稍后会自动提交吗,或者什么可能是使用另一个的实际示例?

最佳答案

在 MySQL 5.7 和 MySQL 8 中,BEGINEND 与 T-SQL 中的相同,表示“复合语句”,也称为“ block 代码”,就像 C、Java、C# 等中的大括号。

However, the BEGIN keyword is also (confusingly) overloaded as an alias for BEGIN WORK and START TRANSACTION ,它们的语义取决于它们是否在存储程序中使用:

Within all stored programs (stored procedures and functions, triggers, and events), the parser treats BEGIN [WORK] as the beginning of a BEGIN ... END block. Begin a transaction in this context with START TRANSACTION instead.

所以:

  • 开始交易
    • 总是开始交易。您应该更喜欢这种语法。
  • 开始:
    • 如果您在存储过程、函数、触发器或事件中,则 BEGIN 本身标志着复合语句的开始。您只能使用START TRANSACTION 来开始交易。
    • 如果您直接对 MySQL 执行 SQL,那么这也会启动一个事务(因为它被解释为 BEGIN WORK)。但以这种方式使用它很愚蠢且令人困惑,因此请避免使用它。
  • 开始工作:
    • 这是START TRANSACTION 的别名。我会避免完全使用它以防止混淆。

关于mysql - 开始...结束与开始交易...提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62614788/

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