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 -- seed_all.sql — Komplett seed för kategorier + produkter
-- --
-- Slår ihop: -- Seeden är ensam sanningskälla för kategorier.
-- categories_supplement.sql (INSERT IGNORE kategorier) -- Den rensar Category-tabellen och bygger upp allt från scratch.
-- 002-seed-products.sql (INSERT IGNORE produkter utan categoryId) -- Product.categoryId nollställs och sätts om av STEG 3.
-- seed_product_categories.sql (UPDATE categoryId via exakta 3-nivå-joins)
--
-- Säkert att köra flera gånger (idempotent).
-- --
-- Kör på servern: -- Kör på servern:
-- DB_PASS=$(grep MARIADB_ROOT_PASSWORD .env | cut -d= -f2) -- DB_PASS=$(grep MARIADB_ROOT_PASSWORD .env | cut -d= -f2)
@@ -15,226 +12,325 @@
-- ============================================================ -- ============================================================
-- STEG 1: KATEGORIER -- RESET: Rensa kategorier och koppla bort produkter
-- (från categories_supplement.sql) -- ============================================================
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) -- ── NIVÅ 1: Toppkategorier ───────────────────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) VALUES ('Dryck', NULL); 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 -- ── NIVÅ 2: under Bröd & Kakor ──────────────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Bröd', id FROM `Category` WHERE name = 'Bröd & Kakor' AND parentId IS NULL;
SELECT 'Öl & cider', id FROM `Category` WHERE name = 'Dryck' 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 IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Knäckebröd & Skorpor', id FROM `Category` WHERE name = 'Bröd & Kakor' AND parentId IS NULL;
SELECT 'Läsk och Energidryck', id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL;
-- LEVEL 2 — under Bröd & Kakor -- ── NIVÅ 2: under Dryck ─────────────────────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Öl & cider', id FROM `Category` WHERE name = 'Dryck' AND parentId IS NULL;
SELECT 'Knäckebröd & Skorpor', id FROM `Category` WHERE name = 'Bröd & Kakor' 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 -- ── NIVÅ 2: under Färdigmat ─────────────────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Såser, grytbaser & övriga smaksättare', id FROM `Category` WHERE name = 'Färdigmat' AND parentId IS NULL;
SELECT 'Frukt & Bär', id FROM `Category` WHERE name = 'Fryst' 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;
INSERT IGNORE INTO `Category` (`name`, `parentId`)
SELECT 'Färdigmat', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL;
-- LEVEL 2 — under Frukt & Grönt -- ── NIVÅ 2: under Fryst ─────────────────────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Bageri', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL;
SELECT 'Grönsaker', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; INSERT INTO `Category` (`name`, `parentId`) SELECT 'Grönsaker & kryddor', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL;
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Frukt & Bär', id FROM `Category` WHERE name = 'Fryst' AND parentId IS NULL;
SELECT 'Frukt', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL; INSERT INTO `Category` (`name`, `parentId`) SELECT 'Färdigmat', id FROM `Category` WHERE name = 'Fryst' 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;
-- LEVEL 2 — under Glass, godis & snacks -- ── NIVÅ 2: under Frukt & Grönt ─────────────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Potatis & rotsaker', id FROM `Category` WHERE name = 'Frukt & Grönt' AND parentId IS NULL;
SELECT 'Choklad', id FROM `Category` WHERE name = 'Glass, godis & snacks' 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 -- ── NIVÅ 2: under Glass, godis & snacks ─────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Chips, snacks & dip', id FROM `Category` WHERE name = 'Glass, godis & snacks' AND parentId IS NULL;
SELECT 'Kött', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL; INSERT INTO `Category` (`name`, `parentId`) SELECT 'Choklad', id FROM `Category` WHERE name = 'Glass, godis & snacks' 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;
-- LEVEL 2 — under Mejeri, ost & ägg -- ── NIVÅ 2: under Kött, chark & fågel ───────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Pålägg', id FROM `Category` WHERE name = 'Kött, chark & fågel' AND parentId IS NULL;
SELECT 'Mellanmål & desserter', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' 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 -- ── NIVÅ 2: under Mejeri, ost & ägg ─────────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Ost', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
SELECT 'Torkad frukt', id FROM `Category` WHERE name = 'Skafferi' 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 IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Filmjölk & Yoghurt', id FROM `Category` WHERE name = 'Mejeri, ost & ägg' AND parentId IS NULL;
SELECT 'Torra baljväxter', id FROM `Category` WHERE name = 'Skafferi' 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;
INSERT IGNORE INTO `Category` (`name`, `parentId`)
SELECT 'Bakning', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
-- LEVEL 3 — under Bröd & Kakor > Knäckebröd & Skorpor -- ── NIVÅ 2: under Skafferi ──────────────────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`) SELECT 'Kryddor & smaksättare', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
SELECT 'Knäckebröd', c2.id INSERT INTO `Category` (`name`, `parentId`) SELECT 'Pasta, ris & matgryn', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
FROM `Category` c1 INSERT INTO `Category` (`name`, `parentId`) SELECT 'Oliver & delikatesser', id FROM `Category` WHERE name = 'Skafferi' AND parentId IS NULL;
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Knäckebröd & Skorpor' 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; WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL;
-- LEVEL 3 — under Bröd & Kakor > Kex & Kakor -- ── NIVÅ 3: under Bröd & Kakor > Kex & Kakor ───────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Söta kex & kakor', c2.id SELECT 'Matkex', c2.id FROM `Category` c1
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' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kex & Kakor'
WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL; WHERE c1.name = 'Bröd & Kakor' AND c1.parentId IS NULL;
-- LEVEL 3 — under Färdigmat > Såser, grytbaser & övriga smaksättare -- ── NIVÅ 3: under Bröd & Kakor > Knäckebröd & Skorpor ──────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Kylda såser', c2.id SELECT 'Knäckebröd', c2.id FROM `Category` c1
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' 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; WHERE c1.name = 'Färdigmat' AND c1.parentId IS NULL;
-- LEVEL 3 — under Fryst > Färdigmat -- ── NIVÅ 3: under Färdigmat > Gratäng & Röror mm ────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Pizza, paj & piroger', c2.id SELECT 'Krämiga sallader', c2.id FROM `Category` c1
FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Gratäng & Röror mm'
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Färdigmat' 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; WHERE c1.name = 'Fryst' AND c1.parentId IS NULL;
-- LEVEL 3 — under Fryst > Grönsaker & kryddor -- ── NIVÅ 3: under Fryst > Grönsaker & kryddor ───────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Grönsaker', c2.id SELECT 'Kryddor', c2.id FROM `Category` c1
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' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker & kryddor'
WHERE c1.name = 'Fryst' AND c1.parentId IS NULL; WHERE c1.name = 'Fryst' AND c1.parentId IS NULL;
-- LEVEL 3 — under Frukt & Grönt > Grönsaker -- ── NIVÅ 3: under Fryst > Färdigmat ─────────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Bönor & Groddar', c2.id SELECT 'Pizza, paj & piroger', c2.id FROM `Category` c1
FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Färdigmat'
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Grönsaker' WHERE c1.name = 'Fryst' AND c1.parentId IS NULL;
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;
-- LEVEL 3 — under Frukt & Grönt > Potatis & rotsaker -- ── NIVÅ 3: under Frukt & Grönt > Potatis & rotsaker ────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Rotsaker', c2.id SELECT 'Lök', c2.id FROM `Category` c1
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' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Potatis & rotsaker'
WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL;
-- LEVEL 3 — under Frukt & Grönt > Frukt -- ── NIVÅ 3: under Frukt & Grönt > Kryddor & smaksättare ─────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Druvor', c2.id SELECT 'Smaksättare', c2.id FROM `Category` c1
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' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt'
WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL;
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Citrusfrukt', c2.id SELECT 'Citrusfrukt', c2.id FROM `Category` c1
FROM `Category` c1
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Frukt'
WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL; WHERE c1.name = 'Frukt & Grönt' AND c1.parentId IS NULL;
-- LEVEL 3 — under Glass, godis & snacks > Choklad -- ── NIVÅ 3: under Glass > Chips, snacks & dip ───────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Chokladkakor & rullar', c2.id SELECT 'Chips', c2.id FROM `Category` c1
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' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Choklad'
WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL; WHERE c1.name = 'Glass, godis & snacks' AND c1.parentId IS NULL;
-- LEVEL 3 — under Kött, chark & fågel > Kött -- ── NIVÅ 3: under Kött, chark & fågel > Pålägg ──────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Färdiglagat & pannfärdigt', c2.id SELECT 'Skivat pålägg', c2.id FROM `Category` c1
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' 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; WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL;
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Fläsk', c2.id SELECT 'Fläsk', c2.id FROM `Category` c1
FROM `Category` c1
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kött' 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; WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL;
-- LEVEL 3 — under Kött, chark & fågel > Fågel -- ── NIVÅ 3: under Kött, chark & fågel > Fågel ───────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Fryst fågel', c2.id SELECT 'Fryst fågel', c2.id FROM `Category` c1
FROM `Category` c1
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Fågel' 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; WHERE c1.name = 'Kött, chark & fågel' AND c1.parentId IS NULL;
-- LEVEL 3 — under Mejeri, ost & ägg > Ost -- ── NIVÅ 3: under Mejeri, ost & ägg > Ost ───────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Matlagningsost', c2.id SELECT 'Färskost', c2.id FROM `Category` c1
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' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Ost'
WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL; WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
-- LEVEL 3 — under Skafferi > Torra baljväxter -- ── NIVÅ 3: under Mejeri, ost & ägg > Mjölk ─────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Fröer & kärnor', c2.id SELECT 'Standardmjölk', c2.id FROM `Category` c1
FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Mjölk'
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Torra baljväxter' WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
-- LEVEL 3 — under Skafferi > Bakning -- ── NIVÅ 3: under Mejeri, ost & ägg > Filmjölk & Yoghurt ────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Baktillbehör', c2.id SELECT 'Filmjölk', c2.id FROM `Category` c1
FROM `Category` c1 JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Filmjölk & Yoghurt'
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Bakning' WHERE c1.name = 'Mejeri, ost & ägg' AND c1.parentId IS NULL;
WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
-- LEVEL 3 — under Skafferi > Kryddor & smaksättare -- ── NIVÅ 3: under Skafferi > Kryddor & smaksättare ──────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Övriga smaksättare', c2.id SELECT 'Sås, dressing & majonnäs', c2.id FROM `Category` c1
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' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Kryddor & smaksättare'
WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
-- LEVEL 3 — under Skafferi > Pasta, ris & matgryn -- ── NIVÅ 3: under Skafferi > Pasta, ris & matgryn ───────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Pasta', c2.id SELECT 'Färsk pasta', c2.id FROM `Category` c1
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' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Pasta, ris & matgryn'
WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
-- LEVEL 3 — under Skafferi > Konserver & burkar -- ── NIVÅ 3: under Skafferi > Oliver & delikatesser ──────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Fruktkonserver', c2.id SELECT 'Delikatesser', c2.id FROM `Category` c1
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' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar'
WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Grönsakskonserver', c2.id SELECT 'Fruktkonserver', c2.id FROM `Category` c1
FROM `Category` c1
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar'
WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Fisk-& skaldjurskonserver', c2.id SELECT 'Grönsakskonserver', c2.id FROM `Category` c1
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' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Konserver & burkar'
WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL;
-- LEVEL 3 — under Skafferi > Asien -- ── NIVÅ 3: under Skafferi > Asien ──────────────────────────
INSERT IGNORE INTO `Category` (`name`, `parentId`) INSERT INTO `Category` (`name`, `parentId`)
SELECT 'Nudlar', c2.id SELECT 'Såser & grytbaser', c2.id FROM `Category` c1
FROM `Category` c1
JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Asien' JOIN `Category` c2 ON c2.parentId = c1.id AND c2.name = 'Asien'
WHERE c1.name = 'Skafferi' AND c1.parentId IS NULL; 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;
-- ============================================================ -- ============================================================