refactor: reorganize seed_all.sql for improved clarity and structure

This commit is contained in:
Nils-Johan Gynther
2026-04-19 23:13:09 +02:00
parent c589447cf8
commit 924ef649fc
+258 -162
View File
@@ -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;
-- ============================================================