2016-06-17 10 views
1

Ich möchte ein Auto-Inkrement-Feld in einer der Spalten in MySQL, die als der Primärschlüssel meiner Tabelle fungieren wird. Ich sah den Beitrag, der beschreibt, wie dies mit Triggern zu tun. Gibt es einen anderen Weg, dies zu tun?Hinzufügen eines Autoinkrement-Felds in mySQL mit Präfix

+1

Nein. Auto_increments sind Zahlen und dürfen keine nicht numerischen Werte enthalten. Daher benötigen Sie einen Trigger, um nach der Erzeugung der ID Präfixe/Suffixe hinzuzufügen. –

+0

In einigen Datenbanksystemen können Sie dazu Sequenzen und einen Standardspaltenwert verwenden; Ich weiß nicht, ob MySQL dies unterstützt oder nicht – GendoIkari

+0

Könnten Sie eine separate Spalte haben, die Ihren 'internen Schlüssel' hat, um Ihre Daten miteinander zu verbinden? Warum? Lassen Sie die Datenbank-Engine, um Beziehungen zwischen Tabellen zu verwalten. Sie kümmern sich um Beziehungen zwischen Ihren Daten? –

Antwort

0

Ich weiß, dass die MyISAM-Speicher-Engine verwendet, nicht sicher, ob es immer noch tut, etwas tun, was Sie wollen.

Es ist nicht im selben Feld, aber wenn der Primärschlüssel eine Zusammensetzung ist, die ein Auto-Inkrement-Feld enthält, basiert der Wert des Feldes auf den anderen Werten im Schlüssel (nicht erinnern, wenn es nur der ist vorausgehende in der Schlüsseldefinition oder alle).

Simple example: 
PK: name, auto_id 
Data ends up being something like: 
red, 1 
blue, 1 
red, 2 
red, 3 
blue, 2 
yellow, 1 
Verwandte Themen