2012-12-26 4 views
1

Y at-il un moyen de définir l'incrémentation automatique de la clé primaire, le type de varchar dans mySql?Incrément automatique varchar dans MySQL

+2

Que voulez-vous dire par l'auto-incrémentation d'un varchar? –

+0

Un champ d'incrémentation automatique doit être 'INT' – Cdeez

+0

Copie possible de http://stackoverflow.com/questions/3455557/mysql-how-to-use-varchar-as-auto-increment-primary-key – Cdeez

Répondre

3

AUCUN. Jusqu'à présent, AUTO_INCREMENT peut être défini pour INT uniquement. Il doit avoir votre propre logique pour le faire. par exemple,

  • Obtenir ID Dernière
  • Obtenez la partie INT dans la chaîne
  • incrémenter la valeur
  • Concatenate
  • Enregistrer à DB
0

Les champs AutoIncrement sont entiers dans mysql.

Vous pouvez mettre en miroir le champ d'incrémentation automatique dans un champ varchar et créer un déclencheur qui met à jour le champ varchar lors de l'insertion/la mise à jour.

Create Trigger

0

pour mon expérience, vous pouvez faire ID Varcar comme incrémentation automatique mais vous devez avoir logic..let dire

Dim crnum As String = "CR00001" 
    Dim iTemp As Integer = 0 

       iTemp = CInt(crnum.Substring(4, crnum.Length - 4)) '// get only the #'s from String and Convert them to Integer. 
       iTemp += 1 '// increase the ID # + 1. 
       crnum = crnum.Substring(0, 4) & iTemp.ToString("00000") '// set the ID back with String and #'s formatted to 5 digit #. 

mais vous devez faire votre propre logique, car après u l'exécuter pour la deuxième fois, il deviendra la clé primaire en double, donc vous devez penser à votre logique pour appliquer votre code. Tout est possible. ;)

Questions connexes