Heim > Datenbank > MySQL-Tutorial > Wie kann ich eine relationale Tabelle mit zwei separaten automatisch inkrementierenden Spalten erstellen?

Wie kann ich eine relationale Tabelle mit zwei separaten automatisch inkrementierenden Spalten erstellen?

Mary-Kate Olsen
Freigeben: 2025-01-06 08:16:40
Original
228 Leute haben es durchsucht

How Can I Create a Relational Table with Two Separate Auto-Incrementing Columns?

SQL: Erstellen einer relationalen Tabelle mit zwei unterschiedlichen automatischen Inkrementen

Problem:

Sie Sie möchten eine relationale Tabelle mit zwei automatisch inkrementierten Spalten erstellen, stoßen jedoch auf eine Fehler.

Erklärung:

Ihr Versuch, eine relationale Tabelle mit mehreren automatisch inkrementierten Spalten zu erstellen, basiert auf einem Missverständnis des Konzepts eines Primärschlüssels.

Schlüsselkonzepte:

  • Primär Schlüssel: Eine eindeutige Kennung, die jede Zeile in einer Tabelle identifiziert.
  • Automatische Inkrementierung: Eine Funktion, die automatisch einen eindeutigen Wert für die angegebene Spalte generiert.

Fehler:

  • Zuweisung der ID-Spalte als primäre Spalte Schlüssel.
  • Angenommen, die ID-Spalte bietet Zeileneindeutigkeit, was nicht der Fall ist.

Lösung:

  1. Überflüssige ID-Felder entfernen:Entfernen Sie die ID-Spalten aus beiden Tabellen, da sie für die Zeile nicht erforderlich sind Identifikation.
  2. Eindeutigkeit von Zeilen deklarieren: Erzwingen Sie die Eindeutigkeit von Zeilen, indem Sie eindeutige Einschränkungen für aus Daten abgeleitete Schlüssel erstellen, z. B. eine Kombination von Namensfeldern. Zum Beispiel:
CREATE TABLE relational_table (
    name_first CHAR(30), 
    name_last  CHAR(30),
    CONSTRAINT PK
        PRIMARY KEY ( name_last, name_first )
    )
Nach dem Login kopieren
  1. Assoziative Tabelle erstellen: Um eine Beziehung zwischen den beiden Tabellen herzustellen, erstellen Sie eine assoziative Tabelle, die die Primärschlüssel beider Tabellen als verwendet der Primärschlüssel. Zum Beispiel:
CREATE TABLE user_sport (
    user_name  CHAR(16) NOT NULL,   -- FK
    sport_code CHAR(4)  NOT NULL,   -- FK
    start_date DATE     NOT NULL,

    CONSTRAINT PK 
        PRIMARY KEY ( user_name, sport_code )
    )
Nach dem Login kopieren
  1. Auto-Increment-Anweisungen entfernen: Die automatische Inkrementierung ist für relationale Tabellen nicht erforderlich und kann zu Verwirrung führen.

Vorteile von Entfernung:

  • Erzwingt die Eindeutigkeit von Zeilen.
  • Verbessert die Datenintegrität.
  • Entfernt doppelte Datensätze.
  • Vereinfacht Fremdschlüsselbeziehungen.

Das obige ist der detaillierte Inhalt vonWie kann ich eine relationale Tabelle mit zwei separaten automatisch inkrementierenden Spalten erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage