Sto utilizzando un VARCHAR come chiave primaria. Voglio incremento automatico esso (base 62, inferiore/maiuscole, numeri), tuttavia, il codice qui sotto non riesce (per ovvie ragioni):MySQL: come utilizzare VARCHAR come chiave primaria AUTO INCREMENT
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;
tuttavia, questo funziona:
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;
Cosa è il modo migliore per tenere traccia dell'avanzamento di "id" da solo? (Poiché auto_increment non funziona). Devo creare un'altra tabella che contenga l'iterazione corrente dell'ID? O c'è un modo migliore per farlo?
MODIFICA: Desidero chiarire che so che l'utilizzo di INT è una chiave primaria autoincremento è la via logica da percorrere. Questa domanda è in risposta ad alcuni dialoghi precedenti che ho visto. Grazie
Offtopic: Sei sicuro di voler utilizzare MyISAM? Per un database relazionale, è necessario innoDB in MySQL per creare chiavi esterne. –
No, non ne sono affatto sicuro. Ho usato MySQL per un po 'di tempo, tuttavia, mi è stato detto che MyISAM dovrebbe essere usato la maggior parte del tempo e sono andato con quello: P –