Bonjour,
je cherche a tester si une clé primaire existe dans ma base de donnée existe t-il une requete particuliere qui repondrait a ma demande ?
d'avance merci
Bonjour,
je cherche a tester si une clé primaire existe dans ma base de donnée existe t-il une requete particuliere qui repondrait a ma demande ?
d'avance merci
Je ne sais pas trop ce que tu veux faire mais en général, une clé primaire est unique et obligatoire (a définir à la création). Le SGBD va hurler (et tu récuperas l'erreur au niveau de ton programme) si tu essayes d'insérer/modifier un enregistrement dont la clé existe déjà.
Maintenant, tu peux vouloir faire un test préalable avec un : SELECT nom_champs_cle_primaire FROM maTable WHERE nom_champs_cle_primaire = maValeur;
Maintenant, s'il s'agit de savoir si une table définit des champs comme clé primaire, tu peux le faire soit par les méta-données, soit en listant les contraintes posés sur la table.
ba enfait quand je fais un
avec maValeur = une valeur qui n'existe pas ds ma base
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT nom_champs_cle_primaire FROM maTable WHERE nom_champs_cle_primaire = maValeur
il me renvoit pas d'erreur et j'aimerais justement qu'il me renvoit une valeur afin de traiter l'erreur derriere du genre si le code existe pas il renvoit false ( ou autre )
Ben, tu le sais :
si pas de réponse : la clé n'existe pas.
Si réponse : la clé existe.
Maintenant, si tu veux une valeur numérique, tu n'as qu'à faire :
SELECT COUNT(*) FROM maTable WHERE nom_champs_cle_primaire = maValeur
Tu auras 0 s'il n'y a pas de clé, 1 s'il y en a une et n si elle n'est pas unique !
ok merci je vais essayer cela et je te tiens au courant
Sinon, il faut tester le code retour SQL qui doit être à -100 (je crois ou 100 ?) quand il n'y a pas de données correspondant à la requète.
OuiEnvoyé par ToMs
cf http://sqlpro.developpez.com/cours/s...age=partie2#L9
Ex sous Oracle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 SQL> CREATE TABLE MaTable ( 2 id NUMBER (10), 3 libe VARCHAR2 (32)); Table créée. SQL> SELECT Constraint_Name, Status 2 FROM User_Constraints 3 WHERE Table_Name = 'MATABLE' 4 AND Constraint_TYPE = 'P'; aucune ligne sélectionnée SQL> ALTER TABLE MaTable ADD CONSTRAINT MaCle PRIMARY KEY (id); Table modifiée. SQL> SELECT Constraint_Name, Status 2 FROM User_Constraints 3 WHERE Table_Name = 'MATABLE' 4 AND Constraint_TYPE = 'P'; CONSTRAINT_NAME STATUS ------------------------------ -------- MACLE ENABLED
c'est bon ca fonctionne
merci ca tous
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager