2011-06-13 5 views
1

J'utilise sqlite (3.7.4) dans l'iphone. Je crée une table comme:insert sqlite avec clé primaire


create table A (UserName varchar (50) primary key, Num integer); 

Puis-je insérer le dossier ci-dessous deux fois:


('abc',1); 

Normalement, il devrait y avoir qu'un seul enregistrement dans DB. Cependant, je trouve dans le DB


(abc,1); 
( ,1); 

Je suis confus que UserName est primary key et pourquoi il y a deux records! Je ne sais pas quel est le problème. Quelqu'un peut-il m'aider?

merci. Pourquoi voulez-vous utiliser le nom d'utilisateur comme clé primaire?

+0

Il suffit de trouver que c'est l'erreur de mon collègue. Dans le cas ci-dessus, il n'y aura jamais les deux enregistrements comme ça. Mais merci tout de même, Vik. – scorpiozj

Répondre

1

La clé primaire doit identifier un enregistrement unique. Pourquoi est-ce que lorsque vous insérez deux fois la deuxième fois que vous avez enfreint la contrainte de clé primaire

+0

cela dépend de notre logique d'entreprise. La circonstance est que parfois nous ne savons pas si l'enregistrement existe dans la base de données. – scorpiozj

+0

@scorpiozj vous pouvez tyr à utiliser un mot-clé unique pour spécifier une colonne unique –

Questions connexes