2013-01-18 6 views
0

Est-il possible de créer un auto-incrément basé sur un champ spécifique? Par exemple, j'ai UserId et Status champs, donc pour chaque ligne avec le même UserId je dois incrémenter automatiquement Status, pas global.Incrément automatique MySQL basé sur le champ?

+2

Cela devrait être ce que vous cherchez: http://stackoverflow.com/questions/5416548/mysql-two-column-primary-key-with-auto-increment – dognose

+0

@dognose cela dépend du moteur , donc ça ne fonctionne pas dans toutes les situations ... – Kin

Répondre

0

Trois choses me viennent à l'esprit lorsque je lis votre question. L'un était un champ auto-incrémenté qui agit comme votre numéro d'identification. Mettre à jour une table avec des données qui n'ont pas de numéro d'identification unique. Recherche de champs avec le même Userid-Status Mt premier exemple d'une création d'une table et votre AUTO_INCREMENT ing Numéro d'identification:

CREATE TABLE tableNameHere 
(
UniqueID int NOT NULL AUTO_INCREMENT, 
FirstName varchar(255) NOT NULL, 
StatusOrYourColumn int(100) NOT NULL, 
PRIMARY KEY (UniqueUD) 
) 

More on auto incrementation.

vous avez déjà construit votre table et veux maintenant " ajouter » supplémentaire et ou modifier vos champs à l'aide ALTER:

ALTER TABLE tableNameHere StatusOrYourColumn INT AUTO_INCREMENT PRIMARY KEY 

Mais attention, vous ne voulez pas écraser vos paramètres yo Vous avez déjà défini.

Une autre chose qui m'est venue à l'esprit lors de la lecture était où vous avez dit Statut et Userid où la même chose. Vous pouvez trouver ces utilisant la clause WHERE comme ceci:

SELECT * FROM tableName WHERE tableName.Userid = anotherTableOrTableName.Status 

L'utilisation de ces requêtes, vous pouvez mettre à jour, remake, modifier et d'interroger votre base de données.

+0

vous pourriez ne pas me comprendre - comme de votre exemple pour chaque 'FirstName' je dois auto-incrémenter' StatusOrYourColumn'. Donc quand j'ajoute 'Name1'' StatusOrYourColumn' devient 1, quand j'ajoute une seconde fois 'FirstName' dans la ligne courante' StatusOrYourColumn' devient 2. – Kin

+0

Où j'ai utilisé 'Uniqueid'replace avec' Status'. Ensuite, en utilisant 'INSERT', donnez au champ une valeur' NULL' pour que l'incrémation automatique se produise. Si vous voulez le faire manuellement, utilisez ce 'SET Status = Status + 1' – sourRaspberri

Questions connexes