Hallo,
ich möchte gerne zwischen zwei Felder im Tebellenetwurf ein weiteres Feld einfügen.
Gibt es dazu eine Möglichkeit?
Ich kann nur unten ein neues Feld anfügen, die Reihenfolge der bestehenden Felder aber nicht ändern.
Danke
Kabelsalat
Tabellenetwurf ändern
Moderator: Moderatoren
Re: Tabellenetwurf ändern
Das scheint im Tabellen-Entwurf von Base tatsächlich nicht zu gehen, ist aber auch völlig unwichtig: Bei einer SQL-Tabelle spielt die Reihenfolge von Spalten und Zeilen überhaupt keine Rolle; es gibt keinen (formalen) Grund, warum eine Spalte unbedingt an der 3. statt an der 7. Stelle kommt. (Unabhängig davon gibt es Tabellen-Editoren, mit denen die Reihenfolge beeinflusst werden, z.B. die MySQL-Workbench, aber eben nicht Base.)
Wenn es in einer praktischen Situation (warum auch immer) wirklich wichtig ist, dann gehe über eine Abfrage (View), am besten über die SQL-Ansicht. Da kannst du die Reihenfolge der Spalten frei bestimmen, und bei passender Definition steht die Abfrage auch für Änderungen zur Verfügung.
Gruß Jürgen
Wenn es in einer praktischen Situation (warum auch immer) wirklich wichtig ist, dann gehe über eine Abfrage (View), am besten über die SQL-Ansicht. Da kannst du die Reihenfolge der Spalten frei bestimmen, und bei passender Definition steht die Abfrage auch für Änderungen zur Verfügung.
Gruß Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: Tabellenetwurf ändern
Die einmal vergebene Reihenfolge muss unverändert bleiben. Wie sollten sonst vorhandene Daten korrekt interpretiert werden? Die bleiben nämlich völlig unverändert erhalten.
Macht aber nix, du kannst ja die Reihenfolge im SELECT unabhängig von der Speicherreihenfolge anpassen. Wenn dir das nicht gefällt, musst du die Tabelle droppen und neu anlegen und die vorhandenen Daten migrieren.
Gruß
lorbass
Macht aber nix, du kannst ja die Reihenfolge im SELECT unabhängig von der Speicherreihenfolge anpassen. Wenn dir das nicht gefällt, musst du die Tabelle droppen und neu anlegen und die vorhandenen Daten migrieren.
Gruß
lorbass
Re: Tabellenetwurf ändern
Aus dem Base-Handbuch, gilt für die eingebaute HSQLDB:
Du kannst über die direkte Eingabe von SQL (Extras → SQL) ein Feld an einer beliebigen Position in der Tabelle einfügen.
Die grafische Benutzeroberfläche bietet das nicht, da es eigentlich ohne Belang ist. Die Reihenfolge kannst Du sonst natürlich auch in Abfragen bestimmen.
Wenn ich eine bestimmte Reihenfolge haben möchte, dann würde ich den folgenden Weg gehen:
Tabelle erstellen, alle möglichen Felder zusammensuchen, die da rein gehören - irgendwann später fällt mir vielleicht noch einiges ein, das verschoben werden muss - abwarten.
Anschließend eine neue Tabelle mit der korrekten Reihenfolge erstellen. Die ursprüngliche Tabelle kopieren und wieder in dem Tabellencontainer ablegen. Hier jetzt die Daten an die neue Tabelle anhängen, dabei die korrekte Reihenfolge der Felder wählen.
Zum Schluss die alte Tabelle löschen, die neue Tabelle auf den Namen der alten ändern und die Reihenfolge entspricht Deinen Wünschen.
Gruß
Robert
Code: Alles auswählen
ALTER TABLE "Adresse" ADD "Vorname" VARCHAR(25) BEFORE "Name";
Die grafische Benutzeroberfläche bietet das nicht, da es eigentlich ohne Belang ist. Die Reihenfolge kannst Du sonst natürlich auch in Abfragen bestimmen.
Wenn ich eine bestimmte Reihenfolge haben möchte, dann würde ich den folgenden Weg gehen:
Tabelle erstellen, alle möglichen Felder zusammensuchen, die da rein gehören - irgendwann später fällt mir vielleicht noch einiges ein, das verschoben werden muss - abwarten.
Anschließend eine neue Tabelle mit der korrekten Reihenfolge erstellen. Die ursprüngliche Tabelle kopieren und wieder in dem Tabellencontainer ablegen. Hier jetzt die Daten an die neue Tabelle anhängen, dabei die korrekte Reihenfolge der Felder wählen.
Zum Schluss die alte Tabelle löschen, die neue Tabelle auf den Namen der alten ändern und die Reihenfolge entspricht Deinen Wünschen.
Gruß
Robert
-
- Beiträge: 5
- Registriert: So, 28.11.2010 18:49
Re: Tabellenetwurf ändern
Danke für die Erläuterungen.
Ist auch nicht so wichtig, war nur wegen der Übersichtlichkeit.
Was mich wundert:
In einer Access Tabelle kann ich Reihenfolge der Felder immer ändern - und es bleibt alles so wie es ist.
Kabelsalat
Ist auch nicht so wichtig, war nur wegen der Übersichtlichkeit.
Was mich wundert:
Warum ändert das die Daten?lorbass hat geschrieben:Die einmal vergebene Reihenfolge muss unverändert bleiben. Wie sollten sonst vorhandene Daten korrekt interpretiert werden? Die bleiben nämlich völlig unverändert erhalten.
In einer Access Tabelle kann ich Reihenfolge der Felder immer ändern - und es bleibt alles so wie es ist.
Kabelsalat
Re: Tabellenetwurf ändern
Hallo Kabelsalat,
du siehst ja auch an dem SQL-Befehl, dass in der HSQLDB das Einfügen eines Feldes vor einem anderen Feld ohne Probleme geht. Allein die GUI gibt das nicht her.
Arbeitest Du z.B. mit MySQL, so kannst Du im Nachhinein auch mit
ALTER TABLE Tabelle CHANGE COLUMN Spalte ...
die Position ändern.
Gruß
Robert
du siehst ja auch an dem SQL-Befehl, dass in der HSQLDB das Einfügen eines Feldes vor einem anderen Feld ohne Probleme geht. Allein die GUI gibt das nicht her.
Arbeitest Du z.B. mit MySQL, so kannst Du im Nachhinein auch mit
ALTER TABLE Tabelle CHANGE COLUMN Spalte ...
die Position ändern.
Gruß
Robert