Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

requête SQL

1 réponse
Avatar
Tarek
salut tout le monde j'ai une requete qui m'ennui bcp
J'ai 2 tableaux:
-personnel:BD des personnels d'une entreprise
-participants:BD des participants(un personnel OU un de sa famille
(=E9pouse ou enfants))dans une activit=E9 de l'entreprise
Qu=E9lle est la requete ou qu'est ce que je dois d=E9clarer mes champs
pour que UN PERSONNEL A le droit AU MAX de 2 PARTICIPANTS
cad AU MAX 2 PARTICIPANTS ont le MEME identifiant du personne.
En d'autres termes:
comment proc=E9der pour lorsque je suis entrain de remplir le tableau
participant,le system va me signaler une erreur si JE DEPASSE POUR UN
SEUL IDENTIFIANT DU PERSONNEL 2 participants
En effet,j'ai cr=E9e les 2 tableaux de la facon suivante:
Create table personnel(
-> IDENT int Primary Key,
-> nom varchar(40),
-> prenon varchar(40),
-> date_lieu_naissance varchar(40),
-> Telephone varchar(40),
-> postion varchar(40),
-> adresse varchar(40));
Create table participants(
-> IDENTPAR INT Primary Key,
-> nom varchar(40),
-> prenom varchar(40),
-> date_lieu_naissance varchar(40),
-> IDENT int,
-> constraint fk_par Foreign Key(IDENT) References test.personnel
(IDENT),
-> IDENTEQUIPE INT,
-> EtablissementActivite Varchar(40),
-> TypeEtablissement ENUM('publique','Priv=E9'));
qu'est ce que je peux ajouter =E0 ces 2 tableaux pour juste REMEDIER =E0
ce probleme
merci
je travaille avec SQL server management express 2005

1 réponse

Avatar
Xavier Nayrac
Tarek a écrit :
salut tout le monde j'ai une requete qui m'ennui bcp



bonjour,

Quélle est la requete ou qu'est ce que je dois déclarer mes champs
pour que UN PERSONNEL A le droit AU MAX de 2 PARTICIPANTS
cad AU MAX 2 PARTICIPANTS ont le MEME identifiant du personne.



Pourrait on voir la (les) requètes(s) que tu as déjà tenté.

En d'autres termes:
comment procéder pour lorsque je suis entrain de remplir le tableau
participant,le system va me signaler une erreur si JE DEPASSE POUR UN
SEUL IDENTIFIANT DU PERSONNEL 2 participants



Je réduis tes tables à ce qui me semble utile pour la règle :

Create table personnel(
IDENT int Primary Key);

Create table participants(
IDENTPAR INT Primary Key,
IDENT int);



A priori, et si j'ai bien compris la règle, je dirais pourquoi ne pas
faire simple :
select count(IDENT) from participants where IDENT = ?
Si tu lis 2, alors le max est atteint, sinon tu peux insérer le participant.

--
Xavier Nayrac
http://personalbugtracker.free.fr