Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

191
Visualizações
COMENZAR... FIN vs INICIAR TRANSACCIÓN... COMPROMETER

¿Cuál es la diferencia entre hacer:

 START TRANSACTION ... COMMIT

O haciendo:

 BEGIN ... END

¿Se confirma automáticamente el último, o cuál podría ser un ejemplo práctico del uso de uno de los otros?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Tanto en MySQL 5.7 como en MySQL 8, BEGIN y END es lo mismo que en T-SQL y representa una "declaración compuesta" también conocida como "un bloque de código", al igual que las llaves en C, Java, C#, etc.

  • MySQL 5.7: https://dev.mysql.com/doc/refman/5.7/en/begin-end.html
  • MySQL 8.0: https://dev.mysql.com/doc/refman/8.0/en/begin-end.html

Sin embargo, la palabra clave BEGIN también está sobrecargada (confusamente) como un alias para BEGIN WORK y START TRANSACTION , y su semántica depende de si se usan dentro de un programa almacenado o no:

Dentro de todos los programas almacenados (procedimientos y funciones almacenados, disparadores y eventos), el analizador trata BEGIN [WORK] como el comienzo de un bloque BEGIN ... END . Comience una transacción en este contexto con START TRANSACTION en su lugar.

Asi que:

  • START TRANSACTION
    • Siempre inicia una transacción. Debería preferir esta sintaxis.
  • BEGIN :
    • Si está en un procedimiento almacenado, función, activador o evento, BEGIN por sí solo marca el inicio de una declaración compuesta. Solo puede usar START TRANSACTION para iniciar una transacción.
    • Si está ejecutando directamente SQL contra MySQL, esto también inicia una transacción (como se interpreta como BEGIN WORK ). Pero es tonto y confuso usarlo de esta manera, así que evítelo.
  • BEGIN WORK :
    • Este es un alias para START TRANSACTION . Evitaría usar esto por completo para evitar confusiones.
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda