Mysql
 sql >> Baza danych >  >> RDS >> Mysql

POCZĄTEK...KONIEC kontra ROZPOCZĘCIE TRANSAKCJI...POTWIERDZENIE

W MySQL 5.7 i MySQL 8, BEGIN i END jest taka sama jak w T-SQL i reprezentuje „instrukcję złożoną” znaną również jako „blok kodu”, podobnie jak nawiasy klamrowe w C, Java, C# itp.

Jednakże BEGIN słowo kluczowe jest również (mylnie) przeciążony jako alias dla BEGIN WORK i START TRANSACTION , a ich semantyka zależy od tego, czy są używane wewnątrz zapisanego programu, czy nie:

A więc:

  • START TRANSACTION
    • Zawsze rozpoczyna transakcję. Powinieneś preferować tę składnię.
  • BEGIN :
    • Jeśli jesteś w procedurze składowanej, funkcji, wyzwalaczu lub zdarzeniu, to BEGIN sam w sobie oznacza początek instrukcji złożonej. Możesz użyć tylko START TRANSACTION aby rozpocząć transakcję.
    • Jeśli bezpośrednio wykonujesz SQL na MySQL, to również uruchamia transakcję (ponieważ jest to interpretowane jako BEGIN WORK ). Ale używanie go w ten sposób jest głupie i mylące, więc unikaj go.
  • BEGIN WORK :
    • To jest alias dla START TRANSACTION . Unikałbym używania tego całkowicie, aby uniknąć nieporozumień.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwracanie bloba za pomocą json

  2. SELECT * FROM tabela WHERE kolumna =1,2,3,4

  3. MySQL wybierz wiersze, w których lewe złącze ma wartość null

  4. MySQL - auto dekrementacja wartości

  5. Jak zaimportować dane XBRL do MySQL?