IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

[SQL/Contrainte] Comment désactiver-réactiver proprement ?


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 48
    Points : 28
    Points
    28
    Par défaut [SQL/Contrainte] Comment désactiver-réactiver proprement ?
    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
    23
    24
     
     
     
    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)

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 414
    Points : 671
    Points
    671
    Par défaut
    1/ Je sais pas trop si tu es dans le bon forum. Tu devrais plus être dans le bon SGBD ou dans PHP...

    2/ Si tu modifies ta clé primaire et bien change de clé primaire, c'est pas tres propre.

    3/ C'est pas comme ca qu'on désactive une contrainte, en droppant puis recréant. Comme je connais pas ton SGBD, je vais parler d'Oracle , il y a Alter Constraint enable/Disable...

  3. #3
    Membre habitué Avatar de VinceTlse
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 163
    Points : 191
    Points
    191
    Par défaut
    alter table ta_table {ENABLE,DISABLE} constraint .....
    Pourquoi faire aujourd'hui ce que l'on peut faire demain ...

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/06/2010, 14h35
  2. [SQL Server 2005] Comment désactiver plusieurs jobs en seule action ?
    Par clementratel dans le forum Administration
    Réponses: 5
    Dernier message: 08/12/2009, 09h49
  3. [Warning] comment désactiver un Warning précis?
    Par bigboomshakala dans le forum MFC
    Réponses: 5
    Dernier message: 01/06/2004, 16h07
  4. Réponses: 8
    Dernier message: 24/07/2003, 10h45
  5. Comment désactiver Ctrl+Alt+Del sous Windows XP
    Par ETOKA dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 04/06/2003, 13h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo