Heim > Datenbank > MySQL-Tutorial > Wie kann eine nicht erste Spalte in einem gemeinsamen MySQL-Primärschlüssel automatisch erhöht werden?

Wie kann eine nicht erste Spalte in einem gemeinsamen MySQL-Primärschlüssel automatisch erhöht werden?

DDD
Freigeben: 2024-12-15 02:35:08
Original
369 Leute haben es durchsucht

How to Auto-Increment a Non-First Column in a MySQL Joint Primary Key?

Automatische Inkrementierung mit gemeinsamem Primärschlüssel in MySQL

MySQL ermöglicht die Erstellung von Tabellen mit mehreren Primärschlüsseln, ist jedoch nicht möglich Unterstützt nativ die automatische Inkrementierung für nicht erste Primärspalten. Um dieses Problem zu beheben, ziehen Sie den folgenden Ansatz zum Erstellen eines gemeinsamen Primärschlüssels mit automatischer Inkrementierung basierend auf einer bestimmten Spalte in Betracht:

MyISAM Engine

Für MyISAM-Tabellen können Sie dies tun Geben Sie AUTO_INCREMENT für eine sekundäre Spalte innerhalb eines mehrspaltigen Index an. Dies bedeutet, dass es möglich ist, die Spalte „table_id“ basierend auf dem Wert „database_id“ automatisch zu erhöhen.

CREATE TABLE mytable (
    table_id MEDIUMINT NOT NULL AUTO_INCREMENT,
    database_id MEDIUMINT NOT NULL,
    other_column CHAR(30) NOT NULL,
    PRIMARY KEY (database_id, table_id)
) ENGINE=MyISAM;
Nach dem Login kopieren

Beispiel

Mit Ihren Beispieldaten können Sie das Gewünschte erreichen Verhalten wie folgt:

INSERT INTO mytable (database_id, other_column) VALUES
    (1,'Foo'),(1,'Bar'),(2,'Baz'),(1,'Bam'),(2,'Zam'),(3,'Zoo');

SELECT * FROM mytable ORDER BY database_id, table_id;
Nach dem Login kopieren

Dadurch werden Tabellen-IDs basierend auf der entsprechenden Datenbank generiert IDs:

+----------+-------------+--------------+
| table_id | database_id | other_column |
+----------+-------------+--------------+
|        1 |           1 | Foo          |
|        2 |           1 | Bar          |
|        3 |           1 | Bam          |
|        1 |           2 | Baz          |
|        2 |           2 | Zam          |
|        1 |           3 | Zoo          |
+----------+-------------+--------------+
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann eine nicht erste Spalte in einem gemeinsamen MySQL-Primärschlüssel automatisch erhöht werden?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage