Heim > Datenbank > MySQL-Tutorial > Wie implementiert man einen zusammengesetzten Primärschlüssel mit einer automatisch inkrementierenden Spalte in MySQL?

Wie implementiert man einen zusammengesetzten Primärschlüssel mit einer automatisch inkrementierenden Spalte in MySQL?

Barbara Streisand
Freigeben: 2024-11-04 08:55:01
Original
797 Leute haben es durchsucht

How to implement a composite primary key with an auto-increment column in MySQL?

Implementieren eines zusammengesetzten Primärschlüssels mit automatischer Inkrementierung in MySQL

MySQL InnoDB-Tabellen unterstützen zusammengesetzte Primärschlüssel und ermöglichen die Identifizierung eindeutiger Zeilen mithilfe mehrerer Spalten . Es ist jedoch wichtig zu beachten, dass nur eine Spalte automatisch inkrementiert werden kann und diese als Teil der Primärschlüsseldefinition angegeben werden muss.

Beim Versuch, einen zusammengesetzten Primärschlüssel mit einer Spalte mit automatischer Inkrementierung zu erstellen und Wenn Sie zwei Fremdschlüssel verwenden, erhalten Benutzer möglicherweise die Fehlermeldung „FEHLER 1075: Falsche Tabellendefinition; es kann nur eine automatische Spalte geben und diese muss als Schlüssel definiert werden“.

Um dieses Problem zu beheben und die gewünschte Zusammensetzung zu implementieren Primärschlüssel, Trigger oder Prozeduren werden häufig empfohlen. Der Einfachheit halber besteht jedoch ein alternativer Ansatz darin, den folgenden MySQL-Trigger zu verwenden:

<code class="sql">DELIMITER $$

CREATE TRIGGER xxx BEFORE INSERT ON issue_log
FOR EACH ROW BEGIN
    SET NEW.sr_no = (
       SELECT IFNULL(MAX(sr_no), 0) + 1
       FROM issue_log
       WHERE app_id  = NEW.app_id
         AND test_id = NEW.test_id
    );
END $$

DELIMITER ;</code>
Nach dem Login kopieren

Dieser Trigger berechnet und weist automatisch einen inkrementierenden „sr_no“-Wert für neue Zeilen zu, die dieselbe „app_id“ und „test_id“ haben ' Werte. Durch die Implementierung dieses Triggers können Sie den gewünschten zusammengesetzten Primärschlüssel mit einer Spalte mit automatischer Inkrementierung erreichen.

Denken Sie daran, dass Trigger eine ordnungsgemäße Handhabung erfordern, um die Datenintegrität sicherzustellen und Race Conditions zu vermeiden. Es wird empfohlen, Trigger gründlich zu testen und zu warten, um unerwartetes Verhalten oder Leistungsengpässe zu verhindern.

Das obige ist der detaillierte Inhalt vonWie implementiert man einen zusammengesetzten Primärschlüssel mit einer automatisch inkrementierenden Spalte in MySQL?. 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