Erstellen oder Entfernen eines Primärschlüssels

Jede Tabelle in Ihrer Datenbank sollte einen Primärschlüssel haben. Ein Primärschlüssel besteht aus einem Feld oder einer Gruppe von Feldern mit einem eindeutigen Wert für jeden in der Tabelle gespeicherten Datensatz. Sie können den Primärschlüssel verwenden, um jeden Datensatz zu identifizieren sowie auf jeden Datensatz zu verweisen.

Access kann automatisch ein Primärschlüsselfeld für Sie erstellen, wenn Sie eine Tabelle erstellen, oder Sie können die Felder angeben, die Sie als Primärschlüssel verwenden möchten. In diesem Artikel wird erläutert, wie und warum Primärschlüssel verwendet werden sollten.

Einer der Gründe zum Erstellen eines Primärschlüssels besteht darin, dass er zum Erstellen von Tabellenbeziehungen verwendet werden kann. In diesem Thema wird nicht erläutert, wie Beziehungen erstellt werden. Weitere Informationen finden Sie im Abschnitt Siehe auch.

Inhalt dieses Artikels

Übersicht

Hinzufügen eines AutoWert-Primärschlüssels

Angeben von Feldern, die als Primärschlüssel verwendet werden sollen

Entfernen eines Primärschlüssels

Verwenden von SQL, um einen Primärschlüssel zu erstellen oder zu entfernen

Weitere Informationen

Übersicht

Wenn Sie eine Datenbank entwerfen, teilen Sie Ihre Informationen so auf Tabellen auf, dass jede Tabelle einem bestimmten Thema entspricht, z. B. Kunden oder Bestellungen. Dadurch lassen sich Redundanzen und widersprüchliche Daten vermeiden.

Beispielsweise kann es für jeden Kunden viele Bestellungen geben. Anstatt die Adresse des Kunden in jedem Datensatz in der Bestellungen-Tabelle zu speichern , speichern Sie diese Informationen einmal in einem Datensatz in der Kunden-Tabelle. Um die Kundeninformationen mit den Informationen über die jeweilige Bestellung zu kombinieren, erstellen Sie eine Beziehung zwischen den beiden Tabellen, indem Sie Schlüsselfelder verwenden.

Primärschlüssel

Eine Tabelle kann nur einen Primärschlüssel haben. Ein Primärschlüssel besteht aus einem Feld oder einer Gruppe von Feldern, und für ihn gilt Folgendes:

  • Er hat für jeden Datensatz einen eindeutigen Wert.

  • Er indiziert die Tabelle.

  • Er kennzeichnet den jeweiligen Datensatz.

Sie können den Primärschlüssel aus einer Tabelle zu einer anderen Tabelle hinzufügen, um eine Beziehung zwischen diesen Tabellen zu erstellen. In der anderen Tabelle wird der Primärschlüssel als Fremdschlüssel bezeichnet.

Nehmen Sie beispielsweise an, Sie verwenden den Primärschlüssel der Kunden-Tabelle in der Bestellungen-Tabelle. In der Bestellungen-Tabelle ist er ein Fremsdschlüssel.

Primärschlüssel und Fremdschlüssel zwischen zwei Access-Datenblättern

1. Primärschlüssel

2. Fremdschlüssel

Fremdschlüssel

Ein Fremdschlüssel ist, einfach formuliert, der Primärschlüssel einer anderen Tabelle. Die Werte in einem Fremdschlüssel stimmen mit den Werten im Primärschlüssel überein, wodurch angegeben ist, dass es eine Beziehung zwischen den beiden Datensätzen gibt (etwa eine Kundin und eine von ihr aufgegebene Bestellung). Im Gegensatz zu Primärschlüsseln:

  • Eine Tabelle kann mehrere Fremdschlüssel haben.

  • Ein Fremdschlüssel muss nicht notwendigerweise eindeutige Werte haben.

  • Mit einem Fremdschlüssel ist es nicht möglich, einen bestimmten Datensatz zuverlässig zu identifizieren. Beispielsweise können Sie, wenn Sie sich die Kunden-ID ansehen, nicht sicher sagen, welchen Datensatz aus der Bestellungen-Tabelle Sie anzeigen.

Sie erstellen einen Fremdschlüssel, wenn Sie den Nachschlage-Assistenten verwenden, um ein Feld zu erstellen.

Kandidatenschlüssel

Gelegentlich enthält eine Tabelle bereits ein gutes Primärschlüsselfeld, etwa eine Seriennummer oder ein Produktcode. Solche Felder werden als Kandidatenschlüssel bezeichnet.

Wenn Sie beispielsweise die Ergebnisse von Hochschulausbildungen nachverfolgen, haben Sie wahrscheinlich eine Hochschulen-Tabelle. Angenommen, es gibt eine offizielle Datenbank zu Hochschulen, die eine Codenummer für jede Hochschule enthält, z. B. das IPEDS (Integrated Postsecondary Education Data System) vom US-Bildungsministerium. Sie könnten den Code, den das System bereitstellt, als Primärschlüssel für Ihre Hochschulen-Tabelle verwenden.

Ein guter Kandidatenschlüssel hat die folgenden Merkmale:

  • Jeder Wert ist eindeutig. Es gibt keine zwei Datensätze in der Tabelle, die denselben Wert für den Schlüssel haben.

  • Er ist niemals leer oder ein Nullwert, sondern enthält immer einen Wert.

  • Jeder Wert ist, nachdem er angelegt wurde, weitgehend dauerhaft. Idealerweise ändern sich die Werte im Schlüsselfeld nie – sie werden nur hinzugefügt oder entfernt.

Ein Beispiel für eine schlechte Wahl für einen Primärschlüssel ist der Kundenname. Viele Namen sind zwar eindeutig, einige aber nicht. Da Sie nicht sicher sein können, dass die Werte eindeutig sein werden, sind Namen allein nicht als Kandidatenschlüssel geeignet.

Wenn Sie eine neue Tabelle in der Datenblattansicht erstellen, wird in Access automatisch ein Primärschlüsselfeld erstellt und diesem der Feldname ID sowie der Datentyp "AutoWert" zugewiesen. Das Feld ist standardmäßig in der Datenblattansicht ausgeblendet, Sie können das Feld jedoch einblenden, wenn Sie in die Entwurfsansicht wechseln.

AutoWert-Felder

Wenn Ihre Tabelle keinen guten Kandidatenschlüssel hat und Sie die Tabelle nicht in der Datenblattansicht erstellt haben, sollten Sie ein Feld hinzufügen, das den Datentyp "AutoWert" hat, und dann dieses Feld für den Primärschlüssel verwenden. Ein AutoWert-Feld erhält automatisch einen neuen eindeutigen Wert für jeden Datensatz, der hinzugefügt wird. Selbst wenn Sie Datensätze löschen, werden die Werte nicht wiederverwendet. Ein AutoWert-Feld erstellt daher eindeutige Werte für jeden Datensatz und ergibt einen guten Primärschlüssel.

Bild mit 'Products'-Tabelle (Artikel) mit einem Primärschlüsselfeld

1. Eine Spalte mit dem Datentyp AutoWert ist häufig ein guter Primärschlüssel, da sie sicherstellt, dass es keine zwei identischen Artikelnummern gibt.

Zusammengesetzte Schlüssel

In manchen Fällen möchten Sie zwei oder mehr Felder in Kombination als Primärschlüssel einer Tabelle verwenden. Beispielsweise könnten Sie in einer Bestelldetails-Tabelle, in der die Posten für Bestellungen gespeichert werden, zwei Felder in deren Primärschlüssel verwenden: "Bestell-Nr" und "Produkt-ID". Ein Schlüssel, der mehrere Felder hat, wird als zusammengesetzter Schlüssel bezeichnet.

Hinweis   Es ist nicht möglich, mit dem Nachschlage-Assistenten einen zusammengesetzten Fremdschlüssel zu erstellen. Sie können einen zusammengesetzten Fremdschlüssel erstellen, indem Sie eine Datendefinitionsabfrage verwenden, um eine Einschränkung für mehrere Felder zu erstellen. Weitere Informationen finden Sie im Thema Erstellen oder Ändern von Tabellen oder Indizes mithilfe einer Datendefinitionsabfrage.

Seitenanfang

Hinzufügen eines AutoWert-Primärschlüssels

  1. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf die Tabelle, der Sie den Primärschlüssel hinzufügen möchten, und klicken Sie dann im Kontextmenü auf Entwurfsansicht.

  2. Geben Sie in der ersten leeren Zeile im Tabellenentwurfsbereich in die Spalte Feldname einen Namen ein, beispielsweise Kunden-ID.

  3. Klicken Sie in der Spalte Datentyp auf den Dropdownpfeil, und klicken Sie dann auf AutoWert.

  4. Klicken Sie in Neue Werte unter Feldeigenschaften auf Inkrement, um inkrementelle numerische Werte für den Primärschlüssel zu verwenden, oder klicken Sie auf Zufall, um Zufallszahlen zu verwenden.

  5. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Tools auf Primärschlüssel.

    Gruppe 'Tools' der Registerkarte 'Entwurf'

    Links neben dem AutoWert-Feld wird ein Schlüsselindikator angezeigt.

    Drücken Sie STRG+S, um die Tabellenentwurfsänderungen zu speichern.

Seitenanfang

Angeben von Feldern, die als Primärschlüssel verwendet werden sollen

  1. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf die Tabelle, für die Sie den Primärschlüssel festlegen möchten, und klicken Sie dann im Kontextmenü auf Entwurfsansicht.

  2. Markieren Sie das Feld bzw. die Felder, das/die Sie als Primärschlüssel verwenden möchten.

    Tipp   Wenn Sie mehrere Felder markieren möchten, halten Sie die STRG-TASTE gedrückt, während Sie auf die Felder klicken.

  3. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Tools auf Primärschlüssel.

    Gruppe 'Tools' der Registerkarte 'Entwurf'

    Links neben dem Feld bzw. den Feldern, die Sie als Primärschlüssel angeben, wird ein Schlüsselsymbol angezeigt.

    Drücken Sie STRG+S, um die Tabellenentwurfsänderungen zu speichern.

Seitenanfang

Entfernen eines Primärschlüssels

Wenn Sie den Primärschlüssel einer Tabelle entfernen, liefern das Feld bzw. die Felder, die zuvor als Primärschlüssel gedient haben, nicht mehr das primäre Mittel zur Identifizierung eines Datensatzes. Durch das Entfernen des Primärschlüssels werden jedoch nicht das Feld oder die Felder aus Ihrer Tabelle gelöscht, sondern die Primärschlüsselbezeichnung aus diesen Feldern.

Durch das Entfernen des Primärschlüssels wird auch der Index entfernt, der für den Primärschlüssel erstellt wurde.

  1. Bevor Sie einen Primärschlüssel entfernen können, müssen Sie sicherstellen, dass für ihn keine Tabellenbeziehungen bestehen. Wenn Sie versuchen, einen Primärschlüssel zu entfernen, für den eine Beziehungen vorhanden ist, werden Sie von Access gewarnt, dass Sie die Beziehung zunächst löschen müssen.

    Löschen einer Tabellenbeziehung

    1. Wenn die Tabellen, für die Tabellenbeziehungen bestehen, geöffnet sind, schließen Sie diese. Sie können keine Tabellenbeziehung zwischen geöffneten Tabellen löschen.

    2. Klicken Sie auf der Registerkarte Datenbanktools in der Gruppe Einblenden/Ausblenden auf Beziehungen.

      Bild der Multifunktionsleiste in Access

    3. Wenn die Tabellen, für die Tabellenbeziehungen bestehen, nicht sichtbar sind, klicken Sie auf der Registerkarte Entwurf in der Gruppe Beziehungen auf Tabelle anzeigen. Wählen Sie dann die Tabellen, die Sie hinzufügen möchten, im Dialogfeld Tabelle anzeigen aus, und klicken Sie auf Hinzufügen und dann auf Schließen.

    4. Klicken Sie auf die Linie der Tabellenbeziehung, die Sie löschen möchten (die markierte Linie wird in Fettdruck dargestellt), und drücken Sie ENTF.

    5. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Beziehungen auf Schließen.

      Multifunktionsleiste Entwurf Registerkarte Beziehungen Gruppe

  2. Klicken Sie im Navigationsbereich mit der rechten Maustaste auf die Tabelle, aus der Sie den Primärschlüssel entfernen möchten, und klicken Sie dann im Kontextmenü auf Entwurfsansicht.

  3. Wählen Sie das aktuelle Primärschlüssel aus.

    Wenn der Primärschlüssel aus mehreren Feldern besteht, klicken Sie auf den Zeilenmarkierer für ein beliebiges Feld im Primärschlüssel.

  4. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Tools auf Primärschlüssel.

    Gruppe 'Tools' der Registerkarte 'Entwurf'

    Der Schlüsselindikator wird aus dem Feld oder den Feldern, das/die Sie zuvor als Primärschlüssel angegeben haben, entfernt.

Hinweis   Wenn Sie eine neue Tabelle speichern, ohne einen Primärschlüssel zu definieren, werden Sie von Access aufgefordert, einen zu erstellen. Wenn Sie Ja wählen, wird ein ID-Feld erstellt, das den Datentyp "AutoWert" verwendet, um einen eindeutigen Wert für jeden einzelnen Datensatz bereitzustellen. Wenn die Tabelle bereits ein Feld vom Typ "AutoWert" enthält, wird dieses Feld von Access als Primärschlüssel verwendet.

Seitenanfang

Ändern eines Primärschlüssels

Um den Primärschlüssel einer Tabelle zu ändern, gehen Sie folgendermaßen vor:

  1. Entfernen Sie den vorhandenen Primärschlüssel entsprechend den Anweisungen im Abschnitt Entfernen eines Primärschlüssels.

  2. Erstellen Sie einen neuen Primärschlüssel entsprechend den Anweisungen im Abschnitt Angeben von Feldern, die als Primärschlüssel verwendet werden sollen.


Seitenanfang

Verwenden von SQL, um einen Primärschlüssel zu erstellen oder zu entfernen

In Access wird ein Primärschlüssel als Index implementiert. Wenn Sie die Entwurfsansicht verwenden, um einen Primärschlüssel zu erstellen, erstellt Access den Index für Sie. Wenn Sie dies vorziehen, können Sie eine Datendefinitionsabfrage verwenden, um einen Primärschlüssel zu erstellen. Sie können die Abfrage immer dann wiederverwenden, wenn Sie den gleichen Primärschlüssel erstellen möchten. Dies kann nützlich sein, wenn Sie eine Tabelle regelmäßig löschen und neu erstellen.

Erstellen eines Primärschlüssels mithilfe von SQL

Um einen Primärschlüssel für eine vorhandene Tabelle zu erstellen, verwenden Sie einen CREATE INDEX-Befehl.

Sie verwenden den CREATE INDEX-Befehl in einer Datendefinitionsabfrage.

  1. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Andere auf Abfrageentwurf.

  2. Schließen Sie das Dialogfeld Tabelle anzeigen.

  3. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Abfragetyp auf Datendefinition.

    Für die Abfrage erfolgt ein Wechsel zur SQL-Ansicht.

  4. Sie können nun den folgenden SQL-Code in die Abfrage eingeben bzw. einfügen:

    CREATE INDEX 
    ON ( )
    WITH PRIMARY
  5. Geben Sie am Ende der ersten Zeile einen Namen für den Index ein.

    Tipp   Es bietet sich an, den Namen mit den Buchstaben ps zu beginnen, um anzugeben, dass der Index ein Primärschlüssel ist. Wenn Sie Primärschlüsselindizes einheitlich benennen, lassen sie sich einfacher von anderen Indizes unterscheiden.

  6. Geben Sie in der zweiten Zeile hinter dem ON-Schlüsselwort, aber vor den Klammern, den Namen der Tabelle ein.

  7. Geben Sie in den Klammern die Namen der Felder ein, die Sie als Primärschlüssel verwenden möchten. Wenn Sie mehrere Feldnamen eingeben, trennen Sie diese durch Kommas voneinander.

  8. Drücken Sie STRG+S, um die Abfrage zu speichern.

    Hinweis   Sie können keinen Index erstellen, der bereits vorhanden ist. Wenn Sie eine Abfrage, die einen Primärschlüssel erstellt, wiederverwenden möchten, müssen Sie zuerst den vorhandenen Primärschlüssel entfernen.

Entfernen eines Primärschlüssels mithilfe von SQL

Wenn Sie einen Primärschlüssel aus einer Tabelle entfernen möchten, verwenden Sie einen DROP INDEX-Befehl.

Sie verwenden den DROP INDEX-Befehl in einer Datendefinitionsabfrage.

  1. Klicken Sie auf der Registerkarte Erstellen in der Gruppe Andere auf Abfrageentwurf.

  2. Schließen Sie das Dialogfeld Tabelle anzeigen.

  3. Klicken Sie auf der Registerkarte Entwurf in der Gruppe Abfragetyp auf Datendefinition.

    Für die Abfrage erfolgt ein Wechsel zur SQL-Ansicht.

  4. Sie können nun den folgenden SQL-Code in die Abfrage eingeben bzw. einfügen:

    DROP INDEX 
    ON
  5. Geben Sie am Ende der ersten Zeile den Namen des Indexes ein.

    Tipp   Wenn Sie den Namen des Indexes nicht wissen, können Sie ihn herausfinden. Öffnen Sie zunächst die Tabelle in der Entwurfsansicht. Klicken Sie dann auf der Registerkarte Entwurf in der Gruppe Einblenden/Ausblenden auf Indizes.

  6. Geben Sie in der zweiten Zeile hinter dem ON-Schlüsselwort, aber vor den Klammern, den Namen der Tabelle ein.

  7. Drücken Sie STRG+S, um die Abfrage zu speichern.

Weitere Informationen

Weitere Informationen zum Datenbankentwurf und zur Auswahl eines geeigneten Primärschlüssels finden Sie in den Artikeln Grundlagen des Datenbankentwurfs und Erstellen einer Tabelle.

Seitenanfang

Gilt für: Access 2007



War diese Information hilfreich?

Ja Nein

Wie können wir es verbessern?

255 Zeichen verfügbar

Um Ihre Privatsphäre zu schützen, geben Sie bitte keine Kontaktinformationen in Ihrem Feedback an. Lesen Sie unsere Datenschutzbestimmung.

Vielen Dank für Ihr Feedback!

Sprache ändern