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

Administration MySQL Discussion :

easyphp-> create table-> clé etrangere?


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Par défaut easyphp-> create table-> clé etrangere?
    alors je crée mes tables à la main!
    donc voila le create table

    TABLE CONTRAT
    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
     
    CREATE TABLE contrat
    (
    id_contrat INT NOT NULL AUTO_INCREMENT ,
    id_client INT NOT NULL ,
    id_technicien INT NOT NULL ,
    intitule VARCHAR( 80 ) NOT NULL ,
    description VARCHAR( 200 ) ,
    date_contrat DATE NOT NULL ,
    etat VARCHAR( 20 ) ,
    resultat VARCHAR( 20 ) ,
    prix FLOAT( 5, 2 ) NOT NULL ,
     
    PRIMARY KEY ( id_contrat ) ,
     
    FOREIGN KEY ( id_client ) REFERENCES user( id_user ) ON UPDATE CASCADE ON DELETE CASCADE ,
    FOREIGN KEY ( id_technicien ) REFERENCES user( id_user )
    )

    et enregardant dans easyphp, le code sql qui me donne :

    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
     
    CREATE TABLE `contrat`
    (
    `id_contrat` int(11) NOT NULL auto_increment,
    `id_client` int(11) NOT NULL default '0',
    `id_technicien` int(11) NOT NULL default '0',
    `intitule` varchar(80) NOT NULL default '',
    `description` varchar(200) default NULL,
    `date_contrat` date NOT NULL default '0000-00-00',
    `etat` varchar(20) default NULL,
    `resultat` varchar(20) default NULL,
    `prix` float(5,2) NOT NULL default '0.00',
    PRIMARY KEY (`id_contrat`),
    KEY `id_client` (`id_client`),
    KEY `id_technicien` (`id_technicien`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    ou est l'erreur?
    est ce que j'ai mal fait ma requete ou alors c'est bon id_client et id_technicien son bien des clé etrangere!!

    a savoir id_user est clé primere de ma table user!

  2. #2
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut
    je mets des clés étrangère comme ceci si ça peux t'aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE contrat ADD CONSTRAINT constraint_fAgence (id_contrat) REFERENCES Client(id_client);
    FOREIGN KEY

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Par défaut
    merci pour la reponse mais le probleme persiste...je peut encore et toujours
    inserer des contrat sans avoir de client!

  4. #4
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut
    ah oui tu mets 0 par défaut
    t'as un client puisqu'il est not null mais ce client

    il a l'id=0

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Par défaut
    a vrai dire le c'est easy php qui le mets!!!
    et justement je travaille avec mais je veux pas qui me le fasse!

  6. #6
    Membre éprouvé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Par défaut
    si tu travailles avec easyphp alors tu vas dans
    Administration -> PhpMyAdmin ->choisi ta Bdd -> choisi ta table ->onglet Strucutre -> click sur le stylo pour modifier ton champ en cause et enlever ta valeur par défaut

    voila comme ça tu seras obligé d'en mettre une de valeur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. CREATE TABLE .... AS SELECT
    Par blids dans le forum SQL
    Réponses: 5
    Dernier message: 13/10/2016, 14h00
  2. EasyPHP / phpMyAdmin : CREATE TABLE ne marche pas
    Par wilfryjules dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/10/2014, 16h29
  3. [DB2] create table... if not exists ?
    Par iubito dans le forum DB2
    Réponses: 6
    Dernier message: 23/03/2004, 18h26
  4. Create table + jointure
    Par ender999 dans le forum Débuter
    Réponses: 7
    Dernier message: 20/02/2004, 12h04
  5. Database new user & create table
    Par MFDev dans le forum InterBase
    Réponses: 3
    Dernier message: 30/09/2003, 20h47

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