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

ROZPOCZNIJ TRANSAKCJĘ wewnątrz BEGIN ... END kontekst lub na zewnątrz i składnia LOOP

  1. Nie:instrukcji złożonych można używać tylko w treści zapisanych programów.

  2. START TRANSACTION; i COMMIT; są oddzielnymi oświadczeniami. Jeśli chcesz, aby ciało przechowywanego programu zawierało wiele instrukcji, będzie musiało ująć te instrukcje w pewnego rodzaju złożonym bloku instrukcji, takim jak BEGIN ... END (co jest podobne do zamykania bloku instrukcji w nawiasach klamrowych { ... } w języku podobnym do C).

    To powiedziawszy, możesz mieć zapisany program, który zawiera tylko jedno polecenie START TRANSACTION; lub COMMIT; — taki program nie wymagałby żadnego bloku instrukcji złożonych i po prostu rozpoczynałby odpowiednio nową / zatwierdzającą bieżącą transakcję.

    Poza programem przechowywanym, gdzie bloki instrukcji złożonych nie są dozwolone, możesz wydać START TRANSACTION; i COMMIT; oświadczenia w razie potrzeby.

  3. LOOP jest również blokiem instrukcji złożonych, który jest prawidłowy tylko w ramach procedury składowanej. Nie jest konieczne aby dołączyć LOOP blok w BEGIN ... END bloku, chociaż jest to normalne (ponieważ w przeciwnym razie trudno jest wykonać dowolną wymaganą inicjalizację pętli).

W twoim przypadku, gdy najwyraźniej chcesz wstawić dane do tabeli z konstrukcji zapętlonej, będziesz musiał:

  • zdefiniuj program przechowywany, w którym używasz LOOP;

  • iterować pętlę w zewnętrznym programie, który wykonuje zapytania do bazy danych w każdej iteracji; lub

  • przedefiniuj swoją logikę w kategoriach zestawów, na których SQL może bezpośrednio operować.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jquery php wstawia dane do mysql bez odświeżania strony

  2. Dokładna paginacja z lewymi łączeniami

  3. $this->db->insert_id() nie działa w mysql codeigniter

  4. Jak skonfigurować płynny nHibernate z MySQL?

  5. Losowy ważony wybór wydarzenia