From 924ef649fc3989a12be09806ab4dfdf0ac31f3d3 Mon Sep 17 00:00:00 2001 From: Nils-Johan Gynther Date: Sun, 19 Apr 2026 23:13:09 +0200 Subject: [PATCH] refactor: reorganize seed_all.sql for improved clarity and structure --- db/seeds/seed_all.sql | 420 ++++++++++++++++++++++++++---------------- 1 file changed, 258 insertions(+), 162 deletions(-) diff --git a/db/seeds/seed_all.sql b/db/seeds/seed_all.sql index 1e7a4a8a..2636165f 100644 --- a/db/seeds/seed_all.sql +++ b/db/seeds/seed_all.sql @@ -1,12 +1,9 @@ -- ============================================================ -- seed_all.sql — Komplett seed för kategorier + produkter -- --- Slår ihop: --- categories_supplement.sql (INSERT IGNORE kategorier) --- 002-seed-products.sql (INSERT IGNORE produkter utan categoryId) --- seed_product_categories.sql (UPDATE categoryId via exakta 3-nivå-joins) --- --- Säkert att köra flera gånger (idempotent). +-- Seeden är ensam sanningskälla för kategorier. +-- Den rensar Category-tabellen och bygger upp allt från scratch. +-- Product.categoryId nollställs och sätts om av STEG 3. -- -- Kör på servern: -- DB_PASS=$(grep MARIADB_ROOT_PASSWORD .env | cut -d= -f2) @@ -15,226 +12,325 @@ -- ============================================================ --- STEG 1: KATEGORIER --- (från categories_supplement.sql) +-- RESET: Rensa kategorier och koppla bort produkter +-- ============================================================ +SET foreign_key_checks = 0; +TRUNCATE TABLE `Category`; +SET foreign_key_checks = 1; +UPDATE `Product` SET `categoryId` = NULL; + + +-- ============================================================ +-- STEG 1: KATEGORIER (komplett träd — enda sanningskällan) -- ============================================================ --- LEVEL 1 — Toppkategorier (nya) -INSERT IGNORE INTO `Category` (`name`, `parentId`) VALUES ('Dryck', NULL); +-- ── NIVÅ 1: Toppkategorier ─────────────────────────────────── +INSERT INTO `Category` (`name`, `parentId`) VALUES ('Bröd & Kakor', NULL); +INSERT INTO `Category` (`name`, `parentId`) VALUES ('Dryck', NULL); +INSERT INTO `Category` (`name`, `parentId`) VALUES ('Färdigmat', NULL); +INSERT INTO `Category` (`name`, `parentId`) VALUES ('Fryst', NULL); +INSERT INTO `Category` (`name`, `parentId`) VALUES ('Frukt & Grönt', NULL); +INSERT INTO `Category` (`name`, `parentId`) VALUES ('Glass, godis & snacks', NULL); +INSERT INTO `Category` (`name`, `parentId`) VALUES ('Kött, chark & fågel', NULL); +INSERT INTO `Category` (`name`, `parentId`) VALUES ('Mejeri, ost & ägg', NULL); +INSERT INTO `Category` (`name`, `parentId`) VALUES ('Skafferi', NULL); --- LEVEL 2 — under Dryck -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Öl & cider', id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Läsk och Energidryck', id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL; +-- ── NIVÅ 2: under Bröd & Kakor ────────────────────────────── +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Bröd', id FROM `Category` WHERE name = 'Bröd & Kakor' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kex & Kakor', id FROM `Category` WHERE name = 'Bröd & Kakor' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Knäckebröd & Skorpor', id FROM `Category` WHERE name = 'Bröd & Kakor' AND parentId IS NULL; --- LEVEL 2 — under Bröd & Kakor -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Knäckebröd & Skorpor', id FROM `Category` WHERE name = 'Bröd & Kakor' AND parentId IS NULL; +-- ── NIVÅ 2: under Dryck ───────────────────────────────────── +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Öl & cider', id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Läsk och Energidryck', id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL; --- LEVEL 2 — under Fryst -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Frukt & Bär', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Färdigmat', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL; +-- ── NIVÅ 2: under Färdigmat ───────────────────────────────── +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Såser, grytbaser & övriga smaksättare', id FROM `Category` WHERE name = 'Färdigmat' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Gratäng & Röror mm', id FROM `Category` WHERE name = 'Färdigmat' AND parentId IS NULL; --- LEVEL 2 — under Frukt & Grönt -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Grönsaker', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Frukt', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Färska bär', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Svamp', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; +-- ── NIVÅ 2: under Fryst ───────────────────────────────────── +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Bageri', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Grönsaker & kryddor', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Frukt & Bär', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Färdigmat', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL; --- LEVEL 2 — under Glass, godis & snacks -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Choklad', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL; +-- ── NIVÅ 2: under Frukt & Grönt ───────────────────────────── +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Potatis & rotsaker', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kryddor & smaksättare', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Grönsaker', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Frukt', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Färska bär', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Svamp', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; --- LEVEL 2 — under Kött, chark & fågel -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Kött', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fågel', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL; +-- ── NIVÅ 2: under Glass, godis & snacks ───────────────────── +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Chips, snacks & dip', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Choklad', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL; --- LEVEL 2 — under Mejeri, ost & ägg -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Mellanmål & desserter', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL; +-- ── NIVÅ 2: under Kött, chark & fågel ─────────────────────── +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Pålägg', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Korv', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kött', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Fågel', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL; --- LEVEL 2 — under Skafferi -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Torkad frukt', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Torra baljväxter', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Bakning', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; +-- ── NIVÅ 2: under Mejeri, ost & ägg ───────────────────────── +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Ost', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Mjölk', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Filmjölk & Yoghurt', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Mellanmål & desserter', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL; --- LEVEL 3 — under Bröd & Kakor > Knäckebröd & Skorpor -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Knäckebröd', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Knäckebröd & Skorpor' +-- ── NIVÅ 2: under Skafferi ────────────────────────────────── +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kryddor & smaksättare', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Pasta, ris & matgryn', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Oliver & delikatesser', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Konserver & burkar', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Asien', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Torkad frukt', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Torra baljväxter', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) SELECT 'Bakning', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL; + +-- ── NIVÅ 3: under Bröd & Kakor > Bröd ────────────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Matbröd', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bröd' WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL; --- LEVEL 3 — under Bröd & Kakor > Kex & Kakor -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Söta kex & kakor', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Bröd & Kakor > Kex & Kakor ─────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Matkex', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kex & Kakor' + WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Söta kex & kakor', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kex & Kakor' WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL; --- LEVEL 3 — under Färdigmat > Såser, grytbaser & övriga smaksättare -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Kylda såser', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Bröd & Kakor > Knäckebröd & Skorpor ────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Knäckebröd', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Knäckebröd & Skorpor' + WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL; + +-- ── NIVÅ 3: under Färdigmat > Såser, grytbaser... ─────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Dressing & övriga smaksättare', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Såser, grytbaser & övriga smaksättare' + WHERE c1.name = 'Färdigmat' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Kylda såser', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Såser, grytbaser & övriga smaksättare' WHERE c1.name = 'Färdigmat' AND c1.parentId IS NULL; --- LEVEL 3 — under Fryst > Färdigmat -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Pizza, paj & piroger', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Färdigmat' +-- ── NIVÅ 3: under Färdigmat > Gratäng & Röror mm ──────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Krämiga sallader', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Gratäng & Röror mm' + WHERE c1.name = 'Färdigmat' AND c1.parentId IS NULL; + +-- ── NIVÅ 3: under Fryst > Bageri ──────────────────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Bröd & fikabröd', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bageri' WHERE c1.name = 'Fryst' AND c1.parentId IS NULL; --- LEVEL 3 — under Fryst > Grönsaker & kryddor -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Grönsaker', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Fryst > Grönsaker & kryddor ─────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Kryddor', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker & kryddor' + WHERE c1.name = 'Fryst' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Grönsaker', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker & kryddor' WHERE c1.name = 'Fryst' AND c1.parentId IS NULL; --- LEVEL 3 — under Frukt & Grönt > Grönsaker -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Bönor & Groddar', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Paprika', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Övriga grönsaker', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Tomater', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Färdigskuret', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' - WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; +-- ── NIVÅ 3: under Fryst > Färdigmat ───────────────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Pizza, paj & piroger', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Färdigmat' + WHERE c1.name = 'Fryst' AND c1.parentId IS NULL; --- LEVEL 3 — under Frukt & Grönt > Potatis & rotsaker -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Rotsaker', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Frukt & Grönt > Potatis & rotsaker ──────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Lök', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Rotsaker', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker' WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; --- LEVEL 3 — under Frukt & Grönt > Frukt -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Druvor', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Frukt & Grönt > Kryddor & smaksättare ───── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Smaksättare', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; + +-- ── NIVÅ 3: under Frukt & Grönt > Grönsaker ───────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Bönor & Groddar', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Paprika', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Övriga grönsaker', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Tomater', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Färdigskuret', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' + WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; + +-- ── NIVÅ 3: under Frukt & Grönt > Frukt ───────────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Druvor', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Citrusfrukt', c2.id - FROM `Category` c1 +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Citrusfrukt', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; --- LEVEL 3 — under Glass, godis & snacks > Choklad -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Chokladkakor & rullar', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Glass > Chips, snacks & dip ─────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Chips', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Chips, snacks & dip' + WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL; + +-- ── NIVÅ 3: under Glass > Choklad ─────────────────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Chokladkakor & rullar', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Choklad' WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL; --- LEVEL 3 — under Kött, chark & fågel > Kött -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Färdiglagat & pannfärdigt', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Kött, chark & fågel > Pålägg ────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Skivat pålägg', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pålägg' + WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL; + +-- ── NIVÅ 3: under Kött, chark & fågel > Korv ──────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Ölkorv', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Korv' + WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL; + +-- ── NIVÅ 3: under Kött, chark & fågel > Kött ──────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Färdiglagat & pannfärdigt', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fläsk', c2.id - FROM `Category` c1 +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Fläsk', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL; --- LEVEL 3 — under Kött, chark & fågel > Fågel -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fryst fågel', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Kött, chark & fågel > Fågel ─────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Fryst fågel', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fågel' WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL; --- LEVEL 3 — under Mejeri, ost & ägg > Ost -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Matlagningsost', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Mejeri, ost & ägg > Ost ─────────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Färskost', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Ost' + WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Dessertost', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Ost' + WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Matlagningsost', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Ost' WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL; --- LEVEL 3 — under Skafferi > Torra baljväxter -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fröer & kärnor', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Torra baljväxter' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; +-- ── NIVÅ 3: under Mejeri, ost & ägg > Mjölk ───────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Standardmjölk', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Mjölk' + WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL; --- LEVEL 3 — under Skafferi > Bakning -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Baktillbehör', c2.id - FROM `Category` c1 - JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bakning' - WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; +-- ── NIVÅ 3: under Mejeri, ost & ägg > Filmjölk & Yoghurt ──── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Filmjölk', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Filmjölk & Yoghurt' + WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL; --- LEVEL 3 — under Skafferi > Kryddor & smaksättare -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Övriga smaksättare', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Skafferi > Kryddor & smaksättare ────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Sås, dressing & majonnäs', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Kryddor', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Övriga smaksättare', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare' WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; --- LEVEL 3 — under Skafferi > Pasta, ris & matgryn -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Pasta', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Skafferi > Pasta, ris & matgryn ─────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Färsk pasta', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pasta, ris & matgryn' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Pasta', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pasta, ris & matgryn' WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; --- LEVEL 3 — under Skafferi > Konserver & burkar -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fruktkonserver', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Skafferi > Oliver & delikatesser ────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Delikatesser', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Oliver & delikatesser' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; + +-- ── NIVÅ 3: under Skafferi > Konserver & burkar ───────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Tomatkonserver', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Grönsakskonserver', c2.id - FROM `Category` c1 +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Fruktkonserver', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Fisk-& skaldjurskonserver', c2.id - FROM `Category` c1 +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Grönsakskonserver', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Fisk- & skaldjurskonserver', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; --- LEVEL 3 — under Skafferi > Asien -INSERT IGNORE INTO `Category` (`name`, `parentId`) - SELECT 'Nudlar', c2.id - FROM `Category` c1 +-- ── NIVÅ 3: under Skafferi > Asien ────────────────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Såser & grytbaser', c2.id FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Asien' WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Nudlar', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Asien' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; + +-- ── NIVÅ 3: under Skafferi > Torra baljväxter ─────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Fröer & kärnor', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Torra baljväxter' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; + +-- ── NIVÅ 3: under Skafferi > Bakning ──────────────────────── +INSERT INTO `Category` (`name`, `parentId`) + SELECT 'Baktillbehör', c2.id FROM `Category` c1 + JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bakning' + WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; -- ============================================================