Seite 1 von 1

(gelöst) Wie werde ich meine Indizes wieder los?

Verfasst: Di 23. Jan 2024, 10:07
von Freischreiber
Hallo Fachwelt,

da ich früher einmal ziemlich ahnungslos Indizes in manchen Tabellen angelegt habe, würde ich viele davon gerne wieder loswerden. Das geht aber nicht so einfach.

Über die Base-GUI (Tabelle bearbeiten - Extras - Indexentwurf) kann ich zwar einen Knopf "Aktuellen Index löschen" drücken, bekomme aber zur Antwort: "unexpected token: ON"

Über SQL-Befehl schaffe ich es auch nicht.
ALTER TABLE "t-adressen" DROP INDEX "SYS_IDX_SYS_FK_10126_10132"
ergibt: "1: user lacks privilege or object not found: INDEX"

Übrigens versuche ich NICHT, den Index für die Primärschlüsselspalte zu löschen, sondern selbst angelegte, die nicht als "eindeutig" in der GUI stehen.

Datenbank ist HSQLDB 2.7.2 gesplittet, also nicht die eingebettete DB.

Flammenwerfer zu nehmen traue ich mich nicht, also: was tun?

Gruß
Freischreiber

Re: Wie werde ich meine Indizes wieder los?

Verfasst: Di 23. Jan 2024, 15:30
von RobertG
Hast Du das Ganze auch einmal mit CONSTRAINT statt INDEX probiert?
Der Begriff INDEX ist bei den HSQLDB-Konstruktionen anderweitig vergeben. Schau dazu einmal im Handbuch im Anhang → Weitere Informationen zur Archivdatei.

Re: Wie werde ich meine Indizes wieder los?

Verfasst: Di 23. Jan 2024, 16:39
von Freischreiber
Hast Du das Ganze auch einmal mit CONSTRAINT statt INDEX probiert?


Im HSQLDB-Handbuch steht: DROP INDEX.

ABER: inzwischen habe ich bemerkt, daß die nicht löschbaren Indizes alles systemeigene sind. Für jede Beziehung zwischen zwei Tabellen legt die Datenbank offenbar automatisch einen systeminternen Index an. Den kann ich nicht löschen. Das wäre wohl auch sinnlos.

Mit manuell angelegten Indizes klappt das Löschen mit z. B. "DROP INDEX "Firma"", sogar ohne Tabellenangabe.

Danke!