SQL Tabelle ändern
SQL Tabelle ändern ist der Schritt danach: die Tabelle steht, es fehlt eine
Spalte. Der Dialog kann absichtlich nur den Teil von ALTER TABLE, bei dem nichts
unabsichtlich verlorengeht.
| Möglich | Nicht möglich |
|---|---|
| Spalte hinzufügen – immer mit NULL erlaubt, ohne Schlüssel, ohne Auto-Wert | Spalte umbenennen |
| Zeichenspalte verlängern – nur größer | Typ wechseln |
| Selbst angelegte Spalte löschen | Länge verkleinern, fremde Spalten löschen, Tabelle löschen |
Die vorhandenen Spalten stehen deshalb als Text da, mit genau einem Eingabefeld dort, wo die Länge steht. Die Entscheidung darüber fällt im Portalskript, nicht im Formular.
Welche Tabelle geändert wird
Verbindung und Tabelle werden oben gewählt; Views stehen nicht zur Wahl, ihre Spalten kommen aus ihrer Abfrage. Sobald eine Tabelle feststeht, stehen ihre Spalten darunter, so wie die Datenbank sie meldet.
Spalte verlängern
Bei einer Zeichenspalte lässt sich die Länge nur nach oben ändern; der Tooltip nennt den aktuellen Wert und die Obergrenze des Typs. Was beim Verkürzen abgeschnitten würde, käme nicht zurück – deshalb gibt es diesen Weg nicht. Reicht die Obergrenze nicht, ist eine neue Spalte vom Typ Langtext der Weg.
Spalte löschen
Ein × hat nur eine Spalte, die dieser Editor selbst angelegt hat. Er merkt sich
das in der Custom Property TS_DdlAddedColumns. Was aus der Auslieferung kommt oder
von Hand entstanden ist, hat keinen Löschknopf und wird auch dann abgelehnt, wenn die
Anfrage es verlangt.
Ein Klick markiert die Spalte nur. Gelöscht wird sie erst mit Ändern und einer Rückfrage – ein zweiter Klick auf das × nimmt die Markierung wieder weg.
Mit der Spalte fällt ihr Inhalt in jeder Zeile. Das lässt sich nicht zurückholen.
ID und Licence bleiben in jedem Fall, wie sie sind: eine Tabelle, in der sie anders
aussehen, passt nicht mehr zu den anderen.
Änderungen in die Definitionen überführen
Die dritte Karte des Dialogs zieht die Definitionen nach – denn eine Spalte in der Datenbank ist erst zu gebrauchen, wenn eine Definition sie kennt.
Angeboten wird, was auf genau diese Tabelle zeigt (dieselbe Verbindung, derselbe Tabellenname), voreingestellt alles davon:
- Angehakte Definitionen bekommen die neuen Spalten eingetragen, gelöschte fallen dort heraus. Was schon dasteht, bleibt unangetastet.
- Die gerade geöffnete Definition wird dabei nicht im Hintergrund gespeichert: sie bekommt die Spalten im Arbeitsspeicher und gilt als geändert. So verliert niemand offene Änderungen dadurch, dass eine Tabelle erweitert wurde.
- Eine Definition, deren JSON nicht lesbar ist, wird nicht angefasst – sie muss erst von Hand geradegezogen werden.
Zeigt keine Definition auf die Tabelle, sagt der Dialog das: die Spalten entstehen dann
nur in der Datenbank, und Neu macht daraus eine Definition.
SQL anzeigen und Ändern
Wie beim Anlegen zeigt SQL anzeigen das Statement, das später läuft, ohne etwas
auszuführen. Ändern führt es aus; bei markierten Löschungen heißt der Knopf
Ändern und löschen und fragt vorher nach.
Ist nichts zu tun – keine neue Spalte, keine gewachsene Länge –, sagt der Dialog das, statt ein leeres Statement zu schicken.
No comments to display
No comments to display