Preloader Otter

Stap 0 - Belangrijk: laat stableKey in mmc_teams juist staan

In jouw mmc_teams.csv staat stableKey al als kolom (nu leeg). Die is perfect om “dit is hetzelfde team over meerdere seizoenen” te onthouden.
- Team uid = unieke rij (seizoen-snapshot)
- Team stableKey = “team-identiteit over seizoenen” (bijv. stableKey = uid van vorig seizoen)
 

Stap 1 - Maak een nieuw seizoen (handmatig)

 

Stap 2 - Maak poules voor aangemaakte seizoen met bijbehorende ID

Je mmc_seasons.csv laat zien dat Voorjaar 2026 al bestaat met id = 4.

Draai dit in phpMyAdmin (SQL tab):

-- Nieuwe seizoen ID
SET @newSeasonId := 4;
-- Maak poules A-D aan als ze nog niet bestaan
INSERT INTO mmc_poules (seasonId, name, dateCreated, dateUpdated, uid)
SELECT @newSeasonId, p.name, NOW(), NOW(), UUID()
FROM (
 SELECT 'A' AS name UNION ALL
 SELECT 'B' UNION ALL
 SELECT 'C' UNION ALL
 SELECT 'D'
) p
LEFT JOIN mmc_poules existing
 ON existing.seasonId = @newSeasonId AND existing.name = p.name
WHERE existing.id IS NULL;

 

Stap 3 - Kopieer alle teams van vorig seizoen → nieuw seizoen

We nemen aan dat je vorige seizoen Najaar 2025 = seasonId = 2 (zoals in je CSV).

SET @oldSeasonId := 2;
SET @newSeasonId := 4;

-- Team rows kopiëren naar nieuw seizoen
-- Belangrijk: stableKey vullen zodat je team-identiteit behoudt.
INSERT INTO mmc_teams (
  seasonId, pouleId, name, shortName, stableKey,
  captainName, captainEmail, captainPhone,
  dateCreated, dateUpdated, uid
)
SELECT
  @newSeasonId,
  np.id AS newPouleId,
  t.name,
  t.shortName,
  COALESCE(t.stableKey, t.uid) AS stableKey,  -- 1e keer: stableKey = oude uid
  t.captainName,
  t.captainEmail,
  t.captainPhone,
  NOW(), NOW(), UUID()
FROM mmc_teams t
JOIN mmc_poules op ON op.id = t.pouleId
JOIN mmc_poules np ON np.seasonId = @newSeasonId AND np.name = op.name
WHERE t.seasonId = @oldSeasonId;

 

Stap 4 - Kopieer alle spelers mee naar de nieuwe teamId’s

Omdat mmc_players aan teamId hangt, moeten spelers mee dupliceren en naar de nieuwe teams wijzen.

Dit doen we door teams te matchen op stableKey + shortName (werkt super in jouw data).

SET @oldSeasonId := 2;
SET @newSeasonId := 4;

-- Spelers kopiëren:
-- Zoek bij elke speler de oude team stableKey + shortName,
-- vind het bijbehorende nieuwe team en gebruik diens id als teamId.
INSERT INTO mmc_players (
  teamId, name, bondsnummer, isCaptain,
  dateCreated, dateUpdated, uid
)
SELECT
  tNew.id AS newTeamId,
  p.name,
  p.bondsnummer,
  p.isCaptain,
  NOW(), NOW(), UUID()
FROM mmc_players p
JOIN mmc_teams tOld
  ON tOld.id = p.teamId AND tOld.seasonId = @oldSeasonId
JOIN mmc_teams tNew
  ON tNew.seasonId = @newSeasonId
  AND tNew.shortName = tOld.shortName
  AND tNew.stableKey = COALESCE(tOld.stableKey, tOld.uid);