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

START TRANSACTION вътре BEGIN ... END контекст или извън и LOOP синтаксис

  1. Не:съставните изрази могат да се използват само в тялото на съхранените програми.

  2. START TRANSACTION; и COMMIT; са отделни твърдения. Ако искате тялото на съхранена програма да съдържа множество изрази, то ще трябва да затвори тези изрази в някакъв вид съставен блок на изрази, като например BEGIN ... END (което е подобно на затваряне на блок от изрази в скоби { ... } в C-подобен език).

    Това каза, че можете имат съхранена програма, която съдържа само едно изявление START TRANSACTION; или COMMIT; —такава програма няма да изисква никакъв съставен блок от оператори и просто ще започне съответно нова/завери текущата транзакция.

    Извън съхранена програма, където блоковете на съставни изрази не са разрешени, можете да издадете START TRANSACTION; и COMMIT; изявления както и когато е необходимо.

  3. LOOP също е съставен блок на изрази, който е валиден само в рамките на съхранена процедура. Не е необходимо за да приложите LOOP блок в BEGIN ... END блок, въпреки че е обичайно (тъй като в противен случай е трудно да се извърши необходимата инициализация на цикъл).

Във вашия случай, когато очевидно искате да вмъкнете данни в таблица от циклична конструкция, ще трябва или да:

  • дефинирайте съхранена програма, в която използвате LOOP;

  • повторете цикъл във външна програма, която изпълнява заявки към база данни при всяка итерация; или

  • предефинирайте вашата логика по отношение на набори, върху които SQL може директно да работи.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ALTER таблица - добавяне на AUTOINCREMENT в MySQL

  2. Кое е най-доброто решение за обединяване на връзки към базата данни в python?

  3. Промяна на часовата зона на Google Cloud SQL CURRENT_TIMESTAMP?

  4. Защо добавянето на '*' към MySQL заявка причинява синтактична грешка?

  5. Как да изпълните голям MySQL скрипт за вмъкване на данни с помощта на командния ред в Windows 7?