Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Anfänger007
***
Beiträge: 74
Registriert: Mi, 02.10.2013 09:00

Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Beitrag von Anfänger007 »

Nach einem Stromausfall und Verlust einiger Daten habe ich auf Frontend Backend JDBC / hsqldb umgestellt. Leider hatte der Autocounter bei der ID anscheinend schon vorher 5 Ziffern übersprungen . Statt von 1000 auf 1001 ist er auf 1005 gesprungen. Außerdem wird seit einigen Datensätzen das Erstellungsdatum nicht mehr automatisch gesetzt.

Habe auch dieses manuell in einer Exporttabelle geändert. Diese korrigierte Tabelle habe ich unter einem anderen Tabellennamen auch erfolgreich importieren können. Nur der Versuch der korrigierten Tabelle den Namen der alten Tabelle zu geben und die alte zu löschen scheitert. Ich finde keine Möglichkeit die Tabellen umzubenennen. Dabei ist mir auch aufgefallen das sich bei Tabelle bearbeiten auch keine Änderungen vornehmen lassen.

Ist das bei JDBC / hsqldb so gewollt oder gibt es doch noch eine Möglichkeit die Tabellen umzubenennen?

Danach wollte ich über extras den SQL Befehl ALTER `meineTabelle` MODIFY `meineTimestampSpalte` TIMESTAMP DEFAULT CURRENT_TIMESTAMP eingeben um wieder Aktuelles Datum als Vorgabewert für neuen Datensatz zu erhalten. Bin mir aber nicht sicher ob das richtig ist. Dieser Befehl muss angeblich nur 1 x ausgeführt werden damit später bei jedem Datensatz automatisch das heutige Datum gesetzt wird.
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Beitrag von RobertG »

Hallo Anfänger007,

hast Du die Tabelle irgendwo in Extras → Beziehungen stehen? Dann kann sie nicht gelöscht werden. Du musst zuerst die Beziehungen lösen und dann löschen.
Auch wenn aus einer Ansicht auf die Tabelle zugegriffen wird kannst Du sie nicht löschen. Du musst zuerst die Ansicht entfernen (irgendwo den SQL-Code als Text zwischenspeichern) um die Tabelle zu löschen.

Wenn der Autocounter, wie Du ihn nennst, Zahlen scheinbar überspringt, dann liegt das in der Regel daran, dass die Datensätze schon existiert haben, aber anscheinend gelöscht wurden. Du kannst den AutoWert auf jede beliebige Startzahl zurücksetzen:

Code: Alles auswählen

ALTER TABLE "Tabellenname" ALTER COLUMN "Feldname" RESTART WITH <neuer_Feldwert>
Gruß

Robert
Anfänger007
***
Beiträge: 74
Registriert: Mi, 02.10.2013 09:00

Re: Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Beitrag von Anfänger007 »

Hallo Robert vielen Dank für deine schnelle Antwort. Sobald ich die Tabelle umbenannt habe werden ich das mit dem Autowert ausprobieren.

Aber das umbenennen ist das Problem. Ich habe weder die Tabelle in Extras in Beziehungen stehen noch eine Ansicht. Es wird bei der Tabelle zwar bei der Rechten Maustaste die Möglichkeit zu löschen angeboten. Aber nicht zum umbenennen. Ich könnte wetten das dort früher auch die Möglichkeit Umbenennen stand( Bevor ich in Frontend Backend aufgeteilt habe). Gibt es eine andere Möglichkeit die Tabelle umzubenennen? Woran könnte es noch liegen das ich die Tabellen selbst auch nicht mehr bearbeiten kann? Die Schrift wird dabei in einer Art Geisterschrift dargestellt.
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Beitrag von F3K Total »

Hi,
Anfänger007 hat geschrieben:Gibt es eine andere Möglichkeit die Tabelle umzubenennen?
Ja gibt es:

Code: Alles auswählen

ALTER TABLE "Tabelle1" RENAME TO "Tabelle2"
dann einmal Ansicht/Tabellen aktualisieren.
HTH R
Anfänger007
***
Beiträge: 74
Registriert: Mi, 02.10.2013 09:00

Re: Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Beitrag von Anfänger007 »

Hallo F3k Total dank deinem Tipp hat das umbenennen schon mal funktioniert. Kann bei Tabelle bearbeiten immer noch keine Änderungen vornehmen. Immer noch Geisterschrift bei den Eigenschaften.
@ Robert erhalte bei
ALTER TABLE "Tabellenname" ALTER COLUMN "Feldname" RESTART WITH <neuer_Feldwert>
leider folgende Fehlermeldung:
1: Unexpected token: < in statement [ALTER TABLE "Tabellenname" ALTER COLUMN "Feldname" RESTART WITH <]
Anfänger007
***
Beiträge: 74
Registriert: Mi, 02.10.2013 09:00

Re: Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Beitrag von Anfänger007 »

@Robert habe gerade festgestellt das der Autowert bei Tabelle bearbeiten auf NEIN steht. Vielleicht kommt deshalb die Fehlermeldung mit dem Token? Leider lässt sich das NEIN nicht in ein JA ändern. Geisterschrift. Gibt es eine andere Möglichkeit den Autowert in der Tabelle von NEIN auf JA zu ändern?
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Beitrag von F3K Total »

Moin,

Code: Alles auswählen

ALTER TABLE "Tabellenname" ALTER COLUMN "Feldname" RESTART WITH 1000
keine weiteren Zeichen um die Zahl. Natürlich darf die Zahl nicht existieren.
Und:
Mit der gesplitteten Version kannst Du die Tabellen nur mit SQL-Befehlen ändern!
Beispiele:
Tabellenspalte umbenennen

Code: Alles auswählen

ALTER TABLE TABLENAME ALTER COLUMNNAME RENAME TO NEWCOLUMNNAME
Tabellenspalte an Position einfügen

Code: Alles auswählen

ALTER TABLE TABLENAME ADD COLUMNNAME COLUMNTYPE BEFORE OTHERCOLUMN;
wobei COLUMNTYPE z.B.
  • INTEGER
  • VARCHAR(50) für einen Text mit 50 Zeichen
  • DATE
  • DECIMAL(12,2) für eine Dezimalzahl mit 12 Stellen, davon 1 Komma und zwei Nachkommastellen
  • u.s.w sein kann
Tabellenspalte löschen

Code: Alles auswählen

ALTER TABLE TABLENAME DROP COLUMNNAME;
View erzeugen (einfaches Beispiel)

Code: Alles auswählen

CREATE VIEW TESTVIEW (ID_P, NAME, VORNAME) AS SELECT ID_P, NAME, VORNAME 
FROM TBL_PILOTEN;
View löschen

Code: Alles auswählen

DROP VIEW VIEWNAME
Gruß R
F3K Total
********
Beiträge: 3720
Registriert: Mo, 28.02.2011 17:49

Re: Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Beitrag von F3K Total »

... und den Autowert kannst du so einstellen:

Code: Alles auswählen

alter Table "Main_Table" ADD PRIMARY KEY ("ID");
alter Table "Main_Table" alter column "ID" INTEGER GENERATED BY DEFAULT AS IDENTITY
Gruß R
Anfänger007
***
Beiträge: 74
Registriert: Mi, 02.10.2013 09:00

Re: Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Beitrag von Anfänger007 »

@F3K Total Habe erst
alter Table "Tabellenname" alter column "ID" INTEGER GENERATED BY DEFAULT AS IDENTITY
dann

ALTER TABLE "Tabellenname" ALTER COLUMN "Feldname" RESTART WITH wunsch_zahl_als_reine_zahl

durchgeführt und jedesmall Ansicht Tabelle aktualiesieren. Es funktioniert.

VIELEN VIELEN DANK.

Auch für die Info das eine gesplittete Datenbank NUR über SQL geändert werden kann!!!

Um wieder Aktuelles Datum als Vorgabewert für neuen Datensatz zu erhalten wollte ich über extras den SQL Befehl

ALTER "Tabellenname" MODIFY "meineTimestampSpalte" TIMESTAMP DEFAULT CURRENT_TIMESTAMP eingeben .
Erhalte aber folgende Fehlermeldung
1: Unexpected token: Tabellenname in statement [ALTER "Tabellenname"]

Liegt das daran das bereits alle alten Datensätze ein aktuelles Datum (unterschiedliche je nach Erstellung) haben? Was mache ich falsch?
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Beitrag von RobertG »

Hallo Anfänger007
Anfänger007 hat geschrieben: ALTER "Tabellenname" MODIFY "meineTimestampSpalte" TIMESTAMP DEFAULT CURRENT_TIMESTAMP
Woher hast Du den Code? Der hat nichts mit der eingebauten HSQLDB zu tun.

Code: Alles auswählen

ALTER TABLE "Tabellenname" ALTER COLUMN "Feldname" SET DEFAULT <Standardwert>;
Und wenn Du jetzt statt <Standardwert> CURRENT_TIMESTAMP oder NOW einfügst, dann klappt das auch. Die spitzen Klammern sind nicht Teil des Codes, sondern zeigen an: Hier muss etwas anderes stehen.

Gruß

Robert
Anfänger007
***
Beiträge: 74
Registriert: Mi, 02.10.2013 09:00

Re: Tabellen lassen sich nicht mehr umbenennen / bearbeiten

Beitrag von Anfänger007 »

@Robert. Vielen Dank. Im Moment bin ich mir garnicht mehr so sicher ob ich NOW oder TIMESTAMP benutzen soll. In der Tabelle sind die alten Werte folgender massen aufgeführt 27.03.14 (tt.mm.yy). Ich glaube bei NOW gekomme ich auch die Stunden etc angezeigt. Aber die brauche ich nicht. Das Datum reicht mir.
Habe deshalb
ALTER TABLE "Tabellenname" ALTER COLUMN "meineTimestampSpalte" SET DEFAULT CURRENT_DATE
bei Extras - SQL eingetragen, Ansicht Tabelle aktualisiert und es funktioniert.
Auch dir VIELEN VIELEN DANK
Antworten