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

SQL Indsæt nye rækker i tabel for hvert felt i samme tabel

I tilfælde af MySQL 8.0 eller nyere kan du bruge næste forespørgsel:

INSERT IGNORE INTO products
SELECT 
    id_product,
    143 as id_category,
    (
       SELECT MAX(position) 
       FROM products
       WHERE id_category = 143
     ) + 
     (row_number() over (order by id_product)) as position
FROM products
WHERE id_category = 12;

Resultat fra

  1. Sådan arbejder du med PostgreSQL-databaser

  2. Kan ikke beslutte om normalisering eller denormalisering ville virke

  3. Skema Switch-A-Roo:Del 2

  4. Hvordan får man kvartal fra dato i Oracle?