Primärschlüssel und eindeutiger Index - von SQL Developer generierte SQL-Skripte

8

Beim Export von SQL-Scripts durch SQL Developer gibt es mehrere Optionen, aber in beiden Fällen muss ein UNIQUE INDEX für den Primärschlüssel wie folgt generiert werden

%Vor%

und fügen Sie PRIMARY KEY derselben Tabelle und derselben Spalte hinzu

%Vor%

Die Frage ist also: Sieht es nach einer Art Redundanz aus? Ich dachte, dass das Erstellen eines Primärschlüssels für eine Spalte standardmäßig einen eindeutigen Index für diese Spalte erstellen sollte? Also warum ist der erste Befehl notwendig?

Und dies kann Datenredundanz verursachen?

Ich bin auf Oracle 11g, also teile bitte irgendwelche Ideen darüber, warum es oben aussehen sollte.

Vielen Dank im Voraus.

    
Dreamer 05.11.2012, 15:22
quelle

1 Antwort

6

Es gibt keine Redundanz - oder nur ein kleines bisschen :)

Der zweite Befehl verwendet den verfügbaren Index, falls er existiert. Andernfalls (wenn die erste DDL nicht existiert) wird ein Index erstellt.

Die Aufteilung in zwei Befehle ist nützlich, wenn Sie dem Index einen korrekten Namen gegeben haben und ihn behalten möchten.

UPDATE : Der Link von Thomas Haratyk ist ein Muss, ich mag ihn: Ссылка

UPDATE2 : a_horse_with_no_name hat recht, es kann in einer einzigen Anweisung wie folgt gemacht werden:

%Vor%

Damit wird der Name beibehalten (es wird kein sysblalbla-Objektname erstellt). Wenn Sie das Schlüsselwort 'USING INDEX' verwenden, können Sie Indexattribute angeben, z. B. Speicherattribute.

Aber auch hier haben Sie keine Probleme mit diesen beiden Anweisungen, nur ein Index wird erstellt.

Wahrscheinlich zieht SQL Developer es vor, ein ddl pro Objekt zu bekommen, und es kann Fälle geben, in denen es besser geht.

    
Florin Ghita 05.11.2012, 15:34
quelle

Tags und Links