Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich eine sequentielle Spalte basierend auf einem Fremdschlüssel in MySQL?

Wie erstelle ich eine sequentielle Spalte basierend auf einem Fremdschlüssel in MySQL?

Susan Sarandon
Freigeben: 2024-11-18 20:17:02
Original
570 Leute haben es durchsucht

How to Generate a Sequential Column Based on a Foreign Key in MySQL?

Hinzufügen einer Sequenzspalte basierend auf einem Fremdschlüssel

Um eine sequentielle Spalte basierend auf einem Fremdschlüssel in MySQL zu erstellen, können Sie Folgendes verwenden SQL-Ansatz:

Erstellen Sie vor dem Einfügen in die Tabelle einen Trigger:

CREATE TRIGGER trg_mytable_bi
BEFORE INSERT ON mytable
FOR EACH ROW
BEGIN
      DECLARE nseq INT;
Nach dem Login kopieren

Rufen Sie die maximal vorhandene Sequenznummer für den entsprechenden Fremdschlüssel ab:

      SELECT  COALESCE(MAX(seq), 0) + 1
      INTO    nseq
      FROM    mytable
      WHERE   account = NEW.account;
Nach dem Login kopieren

Weisen Sie den zu berechnete Sequenznummer für die neue Zeile:

      SET NEW.seq = nseq;
END;
Nach dem Login kopieren

Durch die Verwendung dieses Triggers wird jeder neu eingefügten Zeile eine Sequenznummer zugewiesen, die für den angegebenen Fremdschlüssel inkrementiert wird, wie im bereitgestellten Beispiel dargestellt.

Das obige ist der detaillierte Inhalt vonWie erstelle ich eine sequentielle Spalte basierend auf einem Fremdschlüssel 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