6.1 Struktur der Datenbank ändern

Und schließlich besteht der köstlichste Teil der Arbeit mit Datenbanken darin, die Datenbank zu ändern. Wenn Sie der Meinung sind, dass dies etwas ganz Einfaches ist, dann ist hier eine Anekdote für Sie zu diesem Thema:


The service station master, wiping his hands, hands over the car to the client and chats along the way:
- But who do you work for?
- I am a cardiac surgeon, I perform heart operations.
- And they pay a lot?
- $20,000 per operation.
- Nothing for myself ... But we, in fact, are doing the same thing, sorting out the engines, and they pay me only $ 300 ...
- Do you want to earn as much as I do?
- Want...
The surgeon starts the engine in the car and turns to the master:
- Move over!

Genauso verhält es sich mit Datenbanken. Sie möchten einen Teil der Daten aus der separaten Tabelle herausnehmen? Okay, du brauchst:

  • Erstellen Sie eine neue Tabelle
  • Kopieren Sie die Daten in diese neue Tabelle
  • Spalten aus der alten Tabelle entfernen
  • Ändern Sie alle SQL-Abfragen, die auf die alte Tabelle verwiesen haben
  • Fügen Sie SQL-Abfragen hinzu, die auf die neue Tabelle zugreifen
  • Ändern Sie den Java-Code, der auf die alte Weise mit Tabellen arbeitete
  • Ändern Sie die Sicherungs- und Wiederherstellungsskripte, da die Tabellenstrukturen jetzt nicht übereinstimmen
  • Wenn Sie Testdaten für Entwickler haben, müssen Sie diese ebenfalls ändern

Obwohl es in Wirklichkeit noch schlimmer ist:

Neue Datenbankstruktur:

  • Zuerst ändern Sie die Tabellenstruktur auf dem Computer des Entwicklers
  • Dann sind Sie überzeugt, dass eine solche Struktur wirklich besser ist
  • Genehmigen Sie die neue Datenbankstruktur

Migrationsskripte:

  • Sie schreiben Skripte, die Tabellendaten usw. in einer echten Datenbank ändern
  • Führen Sie diese Skripte auf einem Computer mit der alten Datenbankstruktur aus und sehen Sie, wie sie sich ändert
  • Überprüfen Sie alle kritischen Stellen der neuen Basis

Update zum Verkauf

  • Stoppen Sie die Produktionsdatenbank
  • Erstellen Sie ein vollständiges Backup
  • Ausführen von Skripten
  • Da es normalerweise viele davon auf dem Markt gibt, können diese Skripte stundenlang arbeiten

Sie starten das Produkt und hoffen, dass Sie nicht alles zurücksetzen müssen.

6.2 ALTER TABLE-Anweisung

Andererseits ist das Skript selbst, das die Tabellenstruktur ändert, sehr einfach. In mancher Hinsicht ähnelt es einem Skript zur Tabellenerstellung. Gesamtansicht einer Tabellenänderungsanfrage:

ALTER TABLE table
team 1,
team 2,
Team N

Befehle sind sehr unterschiedlich, es lassen sich jedoch drei Hauptgruppen unterscheiden:

  • ADD- fügt der Tabelle etwas hinzu
  • MODIFY- ändert etwas in der Tabelle
  • DROP- Löscht etwas in der Tabelle

Und wenn ich etwas sage, geht es nicht um die Daten, sondern um die Struktur der Tabelle.

Wenn Sie beispielsweise entscheiden, der Tabelle eine neue Spalte hinzuzufügen, müssen Sie die folgende Abfrage ausführen:

ALTER TABLE table
	ADD COLUMN Name type

Schreiben wir eine Abfrage, die unserer Mitarbeitertabelle eine E-Mail- Spalte hinzufügt :

ALTER TABLE employee
	ADD COLUMN email  VARCHAR(10)

Jetzt ändern wir die Länge des E-Mail-Strings von 10 auf 100: Dazu benötigen wir ein neues Skript:

ALTER TABLE employee
	MODIFY COLUMN email VARCHAR(100)

Wenn Sie einige Attribute einer Spalte ändern möchten, nicht jedoch deren Typ, benötigen Sie den Befehl ALTER COLUM . Legen wir den Standard -E-Mail- Wert fest:

ALTER TABLE employee
	ALTER COLUMN email VARCHAR(100)  DEFAULT 'test@test.com'

Und schließlich kann die Spalte entfernt werden, wenn Sie sie nicht benötigen:

ALTER TABLE employee
	DROP COLUMN email 

6.3 Hinzufügen und Entfernen eines Primärschlüssels

Und einige weitere nützliche Beispiele.

Nehmen wir an, wir haben vergessen, die ID- Spalte als Primärschlüssel zu deklarieren. Sie können dies jederzeit separat tun über ALTER TABLE:

ALTER TABLE employee
	ADD PRIMARY KEY (email);

Das Entfernen ist noch einfacher:

ALTER TABLE employee
	DELETE PRIMARY KEY;