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
"Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément." Nicolas Boileau
"Expliquer empêche de comprendre si cela dispense de chercher"
Quiz Oracle : venez tester vos connaissances !
La FAQ Oracle : 138 réponses à vos questions
Aidez-nous à la compléter
Partager