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

Pętla kursora MySQL nie aktualizuje się

Jeśli dobrze rozumiem, potrzebujesz tylko CROSS JOIN . Wypróbuj

INSERT INTO bullets (product_code, bullet_text) 
SELECT m.product_code, b.bullet_text 
  FROM bullets b CROSS JOIN master m
 WHERE b.product_code = 10001
   AND m.product_group = 3
   AND m.product_code <> 10001;

Oto SQLFiddle demo.

Teraz możesz zapakować go w procedurę składowaną, jeśli przeszedłeś do

CREATE PROCEDURE copy_bullets_test (IN product_code_from INT, IN product_group_to INT)
INSERT INTO bullets (product_code, bullet_text) 
SELECT m.product_code, b.bullet_text 
  FROM bullets b CROSS JOIN master m
 WHERE b.product_code = product_code_from
   AND m.product_group = product_group_to
   AND m.product_code <> product_code_from;

I używaj go

CALL copy_bullets_test(10001, 3);

Oto SQLFiddle demo dla tego przypadku.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać mysqlimport do odczytywania wyniku mysqldump --databases

  2. Macierz wyszukiwania dla wszystkich prostokątów o podanych wymiarach (wybierz bloki siedzeń)

  3. Błąd składni MySQL podczas tworzenia funkcji

  4. DATEDIFF() Przykłady – MySQL

  5. Rozróżnienie MySQL między e i é (e ostre) - UNIKALNY indeks