Bonjour tout le monde, alors j'ai un petit probleme sur une clé primaire
je voudrais modifier un entrainement de joueur(foot), ou il y a a la date ,s'il a fait l'entrainement son niveau actuel....
Seulement ma date et une clé primaire puique un joueur ne peut faire que un entrainement par jour

voici mon script de creation de table



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
 
CREATE TABLE joueurs
(
  jou_num serial NOT NULL,
  jou_nom varchar(20) NOT NULL,
  jou_prenom varchar(20) NOT NULL,
  jou_age int4 NOT NULL,
  jou_tsid int4 NOT NULL,
  jou_spe varchar(20),
  CONSTRAINT pk_jou_num PRIMARY KEY (jou_num))
 
 
CREATE TABLE historique
(
  date varchar(20),
  fkjou_num int4,
  nvotsi varchar(20),
  ouinon varchar(5),
  lvl int4,
  niveau varchar(20),
  CONSTRAINT fk_jou_num FOREIGN KEY (fkjou_num) REFERENCES joueurs (jou_num),
  CONSTRAINT pk_date_jou PRIMARY KEY (date,fkjou_num));
Donc je voudrais modifier l'entrainement du joueur seulement la date ne veut pas se modifier j'au essayé de faire sauter la contrainte mais ca ne vas pas
voici mon code:

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
 
// on désactive la contrainte puis nous relançons
$vrequete="ALTER TABLE historique DROP CONSTRAINT pk_date_jou";
$rslt=pg_exec( $vrequete);
 
 
 
 
$vrequete2 = "Update historique
           set date= '$zsDate',
           ouinon= '$zsEntr',
           nvotsi= '$zsNvoTsi',
           lvl= '$zsSem',
           niveau = '$zsNiveau'
           where
           fkjou_num= '$zsNum'
           and date= '$zsDate';";
 
$rslt2=pg_exec( $vrequete2);
 
//on réactive la contrainte
$vrequete3="ALTER TABLE historique ADD CONSTRAINT  pk_date_jou primary key (date,fkjou_num)";
$rslt3=pg_exec($vrequete3);
qu'est qui ne vas pas??
merci (dsl si c'est un peu long)