Mysql
 sql >> база данни >  >> RDS >> Mysql

НАЧАЛО...КРАЙ срещу НАЧАЛО НА ТРАНЗАКЦИЯ...АНГАЖИРАНЕ

Както в MySQL 5.7, така и в MySQL 8, BEGIN и END е същото като в T-SQL и представлява „съставен израз“, известен също като „блок от код“, точно като фигурни скоби в C, Java, C# и т.н.

Въпреки това BEGIN ключова дума също е (объркващо) претоварен като псевдоним за BEGIN WORK и START TRANSACTION и тяхната семантика зависи от това дали се използват в съхранена програма или не:

И така:

  • START TRANSACTION
    • Винаги започва транзакция. Трябва да предпочетете този синтаксис.
  • BEGIN :
    • Ако сте в съхранена процедура, функция, тригер или събитие, тогава BEGIN сам по себе си маркира началото на съставен израз. Можете да използвате само START TRANSACTION за стартиране на транзакция.
    • Ако изпълнявате директно SQL срещу MySQL, това също стартира транзакция (тъй като се тълкува като BEGIN WORK ). Но е глупаво и объркващо да го използвате по този начин, така че го избягвайте.
  • BEGIN WORK :
    • Това е псевдоним за START TRANSACTION . Бих избягвал да използвам това напълно, за да предотвратя объркване.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. използвайте пълно текстово търсене, за да търсите непълни думи в mysql

  2. Изберете множество дубликати на полета от MySQL база данни

  3. MySQL заявка за намиране на приятели и брой общи приятели

  4. В SQL, как да изключа резултат от SELECT * FROM ...?

  5. Когато се изпълнява приложение Flask с Flask-SQLAlchemy, как да използвам MySQL клиент в същата база данни по едно и също време?