Återställ databasen (del 1)
Låt oss slutligen gå igenom det här med återställning av databasen en gång till. Det är en viktig självkontroll som du kan göra. Om du kan köra alla dina skript i sekvens, och få samma resultat som jag, så visar det att du har “rätt” så här långt i övningen. Det blir en självkontroll som visar att man är på rätt väg.
I denna delen skall du skapa skriptet reset-part-1.sql
.
#Vilka filer behövs köras?
Vi förutsätter att du har skapat en användare som har behörigheter till din databas.
Följande är de filer som behöver köras för att återställa databasen från början.
Fil | Vad gör den? |
---|---|
create-database.sql |
Skapa om en tom databas. |
ddl-larare.sql |
Skapa tabellen för lärare. |
insert-larare.sql |
Lägg till rader i tabellen lärare. |
ddl-alter.sql |
Uppdatera tabellen lärare och lägg till kompetensen. |
dml-update.sql |
Förbered lönerevisionen, alla lärare har grundlön. |
dml-update-lonerevision.sql |
Utför lönerevisionen. |
Här är de skript du behöver köra för att återställa databasen. Du kan markera allihop och kopiera till din terminal, de körs automatiskt efter varandra.
mariadb --table < create-database.sql mariadb --table skolan < ddl-larare.sql mariadb --table skolan < insert-larare.sql mariadb --table skolan < ddl-alter.sql mariadb --table skolan < dml-update.sql mariadb --table skolan < dml-update-lonerevision.sql mariadb skolan -e "SELECT SUM(lon) AS 'Lönesumma', SUM(kompetens) AS Kompetens FROM larare;"
Det skall se ut så här när alla filer och kommandon är utförda.
+------------+-----------+ | Lönesumma | Kompetens | +------------+-----------+ | 330242 | 19 | +------------+-----------+
Som vanligt är det klokt att kontrollera att du inte får några felutskrifter från någon av filerna.
#Ett SQL skript för att köra många SQL skript
En variant är att skapa ett enda SQL skript reset-part-1.sql
som kan återställa hela din databas via ett enda skript som exekverar kommandon från andra filer.
Det använder sig av konstruktionen source
för att läsa kommandon från en annan fil.
I sin helhet kan skriptet se ut så här och du kan kopiera det och modifiera efter behag för att skapa ditt eget återställningsskript.
-- -- Reset part 1 -- source create-database.sql; use skolan; source ddl-larare.sql source insert-larare.sql source ddl-alter.sql source dml-update.sql source dml-update-lonerevision.sql SELECT SUM(lon) AS 'Lönesumma', SUM(kompetens) AS Kompetens FROM larare;
Gå igenom vad som händer i skriptet och försök förklara för dig själv hur det fungerar.
När du kör skriptet måste du stå i samma katalog där filerna finns. Det är enklast att göra detta i terminalen, det blir svårare att jobba med sökvägar i Workbench, man behöver då jobba mer med absoluta sökvägar. Rekommendationen är att göra liknande saker i terminalen för att det blir enklare med sökvägarna till skripten.
Det skall vara enkelt att jobba med databaser. Det blir enkelt om man har ordning på sina filer och vet hur man kan jobba med dem.
Vetskapen om hur man återställer sin databas och sin data skapar trygghet och det blir enklare att jobba och testa saker.
#Revision history
- 2022-01-03: (E, mos) Genomgången inför v2 och MariaDB, bort med bash.
- 2021-01-14: (E, mos) Bort med databasen när man gör setup.
- 2019-01-31: (D, mos) Kommentar om unix radslut.
- 2019-01-11: (C, mos) Stycke om hur man blir av med varningen.
- 2018-03-27: (B, mos) Lade till dml_update_lonerevision.sql.
- 2018-02-09: (A, mos) Tillagd för att fokusera på hur man återställer databasen.