La création de la Clé Unique dans la table MySQL en se référant à ce jour
Question sur la prévention de l'entrée dupliquée dans mon simple formulaire web.
Mon enregistrement de la table à l'entrée d'utilisateur à partir d'un formulaire web, et se distingue par date DATE(). Comment empêcher l'utilisateur avec le même nom pour entrer les informations deux fois en un seul jour, par exemple, le même nom d'utilisateur ne peuvent pas être entré deux fois dans le même jour, mais peut être saisi à autre date?
OriginalL'auteur cys | 2010-07-13
Vous devez vous connecter pour publier un commentaire.
Votre table doit avoir ces:
Peut-être que vous avez une clé unique sur le nom seul aussi? S'il vous plaît exécuter ceci:
show create table tablename
et publier les résultats.Merci les gars, j'ai réussi à l'obtenir en cours d'exécution. Je l'ai mis dans un if..else afin de valider si tout de la ligne avec la DATE et le NOM même, de ne pas exécuter entrer enregistrement, sinon, entrez enregistrement. J'ai eu cette idée de vous tous que faire de NOM et de la DATE unique. Merci! 🙂
OriginalL'auteur ceteras
Vous pouvez simplement créer une clé primaire composite. Pour votre cas, cela signifie que votre clé primaire doivent se compose d'un champ de date ainsi que le champ nom d'utilisateur.
Je suis d'accord! Cependant, je tiens juste à faire remarquer que le "not NULL" option unique pour les champs requis (comme vous l'avez fait dans votre création de la table de code), depuis un NULL-valeur de nom ou de date détruit l'unicité (c'est à dire qu'il est possible d'ajouter l'utilisateur 'xxx' plusieurs fois, si la date est NULLE).
OriginalL'auteur Javaguru
De plusieurs façons.
Tout d'abord, vous pouvez créer des index sur votre table. (je suis en utilisant une simple table par exemple).
C'est MySQL.
Vous devez également effectuer des vérifications en PHP ,vous pouvez le faire lors de l'insertion (MySQL retourne l'erreur et vous pouvez le vérifier). Mais vous pouvez faire d'autres avant de l'insérer (
SELECT * from test WHERE name=USER AND date=DATE
) et de vérifier le nombre d'enregistrements. Si c'est plus que de 0, vous montrer l'erreur.Lors de l'enregistrement, il est rare que vous devriez vous inquiéter au sujet de un SQL supplémentaires. Si vous devez, il suffit de cocher MySQL déclaration des erreurs (MySQL :)).
OriginalL'auteur Tomasz Struczyński
Créer une clé unique sur l'utilisateur et la date de la colonne
http://dev.mysql.com/doc/refman/5.1/en/create-table.html
OriginalL'auteur onof