Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Fehler Table anlegen Primary Index

  Alt 15. Dez 2015, 21:45
das ist eigentlich egal.
Man kann auch einen 2 Zeiler als Beispiel schreiben. Der geht ebenfalls nicht durch.

Code:
CREATE TABLE MYTEST
(
   MYSNR Integer NOT NULL,
   CONSTRAINT MYINDEX PRIMARY KEY (MYSNR)
);
Sollte eigentlich funktionieren. Ich schätze mal, dass Du einfach bereits Objekte in Deiner DB hast, die genauso heißen. Betrifft hier mglw. 3 Objekt Namen, da er beim Index auf die Nase fliegt, aber wohl den PK Constraint Namen bzw. den Indexnamen für den PK constraint.*
Alternativ vielleicht ein Rechte Problem (sysdba Anmeldung).

Schau also einfach mal nach, was Du da schon rumfliegen hast. Gewohnheitsgemäß nimmt man ja für irgendwelche Testtabellen immer ähnliche Namen, z.B. 'test'

Und Zu dem Statement oben:
Du verwendest leider einen etwas irreführenden Namen für den Constraint. Hinter der Formulierung steckt:
FB-Engine, Lege mir einen Constraint namens MYINDEX an (und erzeuge nebenbei automatisch noch einen (unique-weil Primary Key) Index mit einem Namen, den Du Dir selbst ausdenken musst.)
Ergebnis: Der Constraint nennt sich ..Index und der zugehörige Index nennt sich .. unbekannt, die Engine denkt sich einen aus.

Nicht schlimm, aber kann Ärger geben. Nenn den Constraint lieber Rumpelstilzchen oder highlander(es kann nur einen geben), in jedem Fall besser als "..index"
Du nennst das "Nachname"-feld in der Kundentabelle ja vermutlich auch nicht "Vorname".

Idealerweise benennst Du den tatsächlichen Index auch gleich explizit, dann weißt Du im Zweifel beim Umbenennen, Löschen, Reindizieren, wie das Objekt wirklich benamt ist und musst den Namen nicht aus der Datenbank raussuchen, bevor Du es anpackst.

*Der wirkliche Indexname ist ja nicht angegeben, also vielleicht 4 objektnamen. Ich bin kein FB Spezi, weiß nicht, wie FB die (Index)Namen generiert.

P.S: Bevor Du lange nach den Objektnamen suchst. Versuch einfach mal das gleiche Statement mit komplett absurden Namen auszuführen für Table, Column, Constraint. Und noch mal explizit mit Indexname dazu. Vielleicht gehts, dann ist klar, was los ist.
Gruß, Jo

Geändert von jobo (15. Dez 2015 um 21:52 Uhr)
  Mit Zitat antworten Zitat