Ich verwende einen VARCHAR als Primärschlüssel. Ich mag Autoinkrement es (Basis 62, Groß-/Kleinschreibung, Zahlen), jedoch der folgende Code fehlschlägt (aus offensichtlichen Gründen):MySQL - Verwendung von VARCHAR als AUTO INCREMENT Primärschlüssel
CREATE TABLE IF NOT EXISTS `campaign` (
`account_id` BIGINT(20) NOT NULL,
`type` SMALLINT(5) NOT NULL,
`id` VARCHAR(16) NOT NULL AUTO_INCREMENT PRIMARY KEY
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
aber dies funktioniert:
CREATE TABLE IF NOT EXISTS `campaign` (
`account_id` BIGINT(20) NOT NULL,
`type` SMALLINT(5) NOT NULL,
`id` VARCHAR(16) NOT NULL PRIMARY KEY
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Was ist der beste Weg, um die Inkrementierung von 'ID' selbst zu verfolgen? (Da auto_increment nicht funktioniert). Muss ich eine andere Tabelle erstellen, die die aktuelle Iteration der ID enthält? Oder gibt es einen besseren Weg, dies zu tun?
EDIT: Ich möchte klarstellen, dass ich weiß, dass die Verwendung von INT ist ein Auto_increment Primärschlüssel ist der logische Weg zu gehen. Diese Frage ist eine Antwort auf einige frühere Dialoge, die ich gesehen habe. Dank
Offtopic: Sind Sie sicher, dass Sie MyISAM verwenden möchten? Für eine relationale Datenbank benötigen Sie innoDB in MySQL, um Fremdschlüssel zu erstellen. –
Nein, ich bin mir überhaupt nicht sicher. Ich benutze MySQL schon eine ganze Weile, aber mir wurde gesagt, dass MyISAM die meiste Zeit benutzt werden sollte und ich ging einfach damit: P –