sql >> Database teknologi >  >> RDS >> Mysql

MySQL Cursor Loop opdateres ikke

Hvis jeg forstår det rigtigt, skal du bare CROSS JOIN . Prøv

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;

Her er SQLFiddle demo.

Nu kan du pakke det ind i en lagret procedure, hvis du gik til

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;

Og brug det

CALL copy_bullets_test(10001, 3);

Her er SQLFiddle demo for den sag.




  1. Hvad betyder pooling=false i en MySQL-forbindelsesstreng?

  2. MySql-forespørgsel kører, men det virker ikke i sp

  3. 5 Databaseovervågningsvaner for succesrige DBA'er

  4. PostgreSQL psycopg2 returnerer en tuple af strenge i stedet for tuple of tuples?