Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/08/2011, 17h03   #1
Membre Expert
 
Homme AbdelHakim Kellouche
Inscription : mai 2008
Messages : 1 977
Détails du profil
Informations personnelles :
Nom : Homme AbdelHakim Kellouche
Localisation : Algérie

Informations professionnelles :
Secteur : Service public

Informations forums :
Inscription : mai 2008
Messages : 1 977
Points : 2 126
Points : 2 126
Envoyer un message via MSN à Just-Soft Envoyer un message via Skype™ à Just-Soft
Par défaut Erreur sur création d'une clé primaire

Salut !

Voulant créer une clé primaire pour une table qui compte déjà des données, j'ai eu ce message
Citation:
Invalid insert or update value(s): object columns are constrained - no 2 table rows can have duplicate column values.
attempt to store duplicate value (visible to active transactions) in unique index "PK_TB_SR_SERVICE".
Le message si je l'ai bien saisis mentionne que ma table compte des enregistrements en double, ce qui n'est pas le cas !

donc comment remédier à ce problème en cherchant puis éliminant les doublons par commande sql ?

merci par avance
__________________
Bon courage ou Bonne Chance (selon le contexte)
Just-Soft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 17h41   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Bonjour,

Le message dit qu'il y a des doublons dans la table ce qui fait échouer la création de la clé unique.

Pour la recherche de doublon et comment les traiter il y a le très bon article d'SQLPRO :

http://sqlpro.developpez.com/cours/doublons/

Si vous n'y arrivez pas, pour vous aider il nous faudrait connaitre la tructure de la table et au minimum l'ordre de création de cette clé qui échoue.

Cordialement
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 18h33   #3
Membre Expert
 
Homme AbdelHakim Kellouche
Inscription : mai 2008
Messages : 1 977
Détails du profil
Informations personnelles :
Nom : Homme AbdelHakim Kellouche
Localisation : Algérie

Informations professionnelles :
Secteur : Service public

Informations forums :
Inscription : mai 2008
Messages : 1 977
Points : 2 126
Points : 2 126
Envoyer un message via MSN à Just-Soft Envoyer un message via Skype™ à Just-Soft
ok
voici la structure de ma table
Citation:
CREATE TABLE TB_SR_SERVICE (
CODE_SR SMALLINT NOT NULL,
CODE_INTERNE SMALLINT NOT NULL,
VOLUME_RELEVE BIGINT NOT NULL,
DECHET_EXTRAI FLOAT NOT NULL,
DATE_BILAN DATE NOT NULL
);
j'ai essayé avec ça :
Code :
1
2
3
4
SELECT COUNT(*) AS NBR_DOUBLES, date_bilan, code_sr
FROM   tb_sr_service
GROUP  BY code_sr, date_bilan
HAVING COUNT(*) > 1
car ma clé est composée de code_sr et date_bilan

j'ai pu trouver deux doublons que j'ai supprimé mais quand j'ai voulu créé ma clé primaire le compilateur m'a retourné le premier message d'erreur
__________________
Bon courage ou Bonne Chance (selon le contexte)
Just-Soft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 19h11   #4
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Apres avoir supprimé les doublons, vous avez bien fait un commit de la transaction ?

Sinon relancer la requête qui identifie les doublons juste avant la création de la clé primaire pour être certain qu'il n'y en a pas.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 22h55   #5
Membre Expert
 
Homme AbdelHakim Kellouche
Inscription : mai 2008
Messages : 1 977
Détails du profil
Informations personnelles :
Nom : Homme AbdelHakim Kellouche
Localisation : Algérie

Informations professionnelles :
Secteur : Service public

Informations forums :
Inscription : mai 2008
Messages : 1 977
Points : 2 126
Points : 2 126
Envoyer un message via MSN à Just-Soft Envoyer un message via Skype™ à Just-Soft
Citation:
Envoyé par Barbibulle Voir le message
Apres avoir supprimé les doublons, vous avez bien fait un commit de la transaction ?

Sinon relancer la requête qui identifie les doublons juste avant la création de la clé primaire pour être certain qu'il n'y en a pas.
oui oui j'ai tout fais dans l'ordre mais toujours ce message d'erreur. d'ailleurs voici en pièce-jointe le résultat de la fréquence d'apparition de chaque couple (code_sr, date_bilan) et qui est la preuve que les doublons sont absents. Le code de la requête est celui-ci :

Code :
1
2
3
SELECT count(*) AS frequence, code_sr, date_bilan
FROM tb_sr_service
GROUP BY code_sr, date_bilan
Fichiers attachés
Type de fichier : xls Resultats_apres_execution_requete.xls (24,0 Ko, 5 affichages)
__________________
Bon courage ou Bonne Chance (selon le contexte)
Just-Soft est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 08h20   #6
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
Salut

Tu n'indiques pas quelle(s) est(son) la(les) colonne(s) pour la clé primaire. C'est cette clé qui doit être unique.

Est ce, comme le suggère, ta requête code_sr, date_bilan ?
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2011, 10h32   #7
Membre Expert
 
Homme AbdelHakim Kellouche
Inscription : mai 2008
Messages : 1 977
Détails du profil
Informations personnelles :
Nom : Homme AbdelHakim Kellouche
Localisation : Algérie

Informations professionnelles :
Secteur : Service public

Informations forums :
Inscription : mai 2008
Messages : 1 977
Points : 2 126
Points : 2 126
Envoyer un message via MSN à Just-Soft Envoyer un message via Skype™ à Just-Soft
Citation:
Envoyé par dehorter olivier Voir le message
Salut

Tu n'indiques pas quelle(s) est(son) la(les) colonne(s) pour la clé primaire. C'est cette clé qui doit être unique.

Est ce, comme le suggère, ta requête code_sr, date_bilan ?
Bonjour !
oui c'est bien ça
la bonne nouvelle c'est que ma clé primaire fonctionne. je crois que la transaction n'a pas bien fait son boulot hier car quand j'ai reconnecté aujourd'hui tout s'est normalement passé

merci à tous
__________________
Bon courage ou Bonne Chance (selon le contexte)
Just-Soft est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h01.


 
 
 
 
Partenaires

Hébergement Web