Heim >Datenbank >MySQL-Tutorial >Wie kann ich automatisch inkrementierende Primärschlüssel in MySQL voranstellen?

Wie kann ich automatisch inkrementierende Primärschlüssel in MySQL voranstellen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-14 00:45:17872Durchsuche

How Can I Prefix Auto-Incrementing Primary Keys in MySQL?

Automatisch inkrementierende Primärschlüssel in MySQL voranstellen

Als Datenbankadministrator kann es vorkommen, dass Sie Ihren automatisch inkrementierenden Primärschlüsseln ein Präfix voranstellen möchten. Inkrementieren von Primärschlüsseln mit einem bestimmten Wert. In diesem Leitfaden untersuchen wir eine Lösung mit einer separaten Sequenzierungstabelle und einem Trigger.

Erstellen der Sequenzierungstabelle

Erstellen Sie zunächst eine Tabelle, um die Sequenzwerte zu generieren :

CREATE TABLE table1_seq (
  id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
);

Hauptseite erstellen Tabelle

Als nächstes erstellen Sie Ihre Haupttabelle mit der Primärschlüsselspalte unter Verwendung des Typs VARCHAR und unter Angabe des Standardwerts „0“:

CREATE TABLE table1 (
  id VARCHAR(7) NOT NULL PRIMARY KEY DEFAULT '0',
  name VARCHAR(30)
);

Trigger für Präfixierung der Primärschlüssel

Um den Präfixwert für den Primärschlüssel festzulegen, erstellen Sie einen Trigger, der vor jedem Einfügevorgang auf dem Hauptschlüssel ausgelöst wird Tabelle:

DELIMITER $$
CREATE TRIGGER tg_table1_insert
BEFORE INSERT ON table1
FOR EACH ROW
BEGIN
  INSERT INTO table1_seq VALUES (NULL);
  SET NEW.id = CONCAT('LHPL', LPAD(LAST_INSERT_ID(), 3, '0'));
END$$
DELIMITER ;

Daten in die Haupttabelle einfügen

Jetzt können Sie Daten in die Haupttabelle einfügen, ohne den Primärschlüsselwert anzugeben. Der Trigger generiert automatisch die IDs und stellt ihnen ein Präfix voran:

INSERT INTO Table1 (name) 
VALUES ('Jhon'), ('Mark');

Ausgabe

Beim Einfügen von Daten zeigt die Tabelle die folgenden Datensätze mit den vorangestellten Primärschlüsseln an:

|      ID | NAME |
------------------
| LHPL001 | Jhon |
| LHPL002 | Mark |

SQLFiddle-Demonstration

Für eine praktische Zur Demonstration können Sie sich die SQLFiddle-Demo hier ansehen: [Link]

Das obige ist der detaillierte Inhalt vonWie kann ich automatisch inkrementierende Primärschlüssel in MySQL voranstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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