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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    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!
    trouvez moi un autre avatar!!!!!!!!!!!!!!!
    n'attendez pas qu'on trouve des réponses pour vous, trouvez de vous même!

  2. #2
    Membre éclairé 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
    Points : 868
    Points
    868
    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
    Plzzz pas de questions par MP.

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut
    merci pour la reponse mais le probleme persiste...je peut encore et toujours
    inserer des contrat sans avoir de client!
    trouvez moi un autre avatar!!!!!!!!!!!!!!!
    n'attendez pas qu'on trouve des réponses pour vous, trouvez de vous même!

  4. #4
    Membre éclairé 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
    Points : 868
    Points
    868
    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
    Plzzz pas de questions par MP.

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    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!
    trouvez moi un autre avatar!!!!!!!!!!!!!!!
    n'attendez pas qu'on trouve des réponses pour vous, trouvez de vous même!

  6. #6
    Membre éclairé 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
    Points : 868
    Points
    868
    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
    Plzzz pas de questions par MP.

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut
    j'ai l'air de le faire expres mais pas du tout!!!
    avec la manip que tu m'a donné, rien ne se passe!
    je crois que c'est a cause du "not null" parce que si je ne me trompe pas c'est du MySQL mais c'est un MySQL, il me semble, qui n'accepte pas les "foreign key"
    merci quand meme de te cresser la tete :: drole d'image
    trouvez moi un autre avatar!!!!!!!!!!!!!!!
    n'attendez pas qu'on trouve des réponses pour vous, trouvez de vous même!

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut
    c'est bon je vien de comprendre que je suis completement debile!!!!

    les references ne marche pas sur cette version!!!
    allé comprendre pourquoi?!

    merci quand meme lexo!
    trouvez moi un autre avatar!!!!!!!!!!!!!!!
    n'attendez pas qu'on trouve des réponses pour vous, trouvez de vous même!

  9. #9
    Membre averti Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Points : 368
    Points
    368
    Par défaut
    Je suis d'accord avec toi, touille !!
    J'avais un projet à faire aussi, et j'avais mis des foreign key mais ceux-ci ne fonctionnaient pas tout comme les references d'ailleurs !! Je n'ai toujours pas de réponses mais je ne pense pas que ce soit faisable sous mySQL.

    Demande de confirmation !!
    Si ton labeur est dur et que tes résultats sont minces, rappelles-toi qu'un jour, le grand chêne a été un gland comme toi !

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut
    sur un autre forum on me dit d'activer innodb mais je ne sais pas le faire
    sinon d'utiliser mysql 5!!
    trouvez moi un autre avatar!!!!!!!!!!!!!!!
    n'attendez pas qu'on trouve des réponses pour vous, trouvez de vous même!

  11. #11
    Membre averti Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Points : 368
    Points
    368
    Par défaut
    Ok, ben je ne sais pas non plus pis j'ai pas easyPHP devant moi !! Tiens moi au courant !!
    Si ton labeur est dur et que tes résultats sont minces, rappelles-toi qu'un jour, le grand chêne a été un gland comme toi !

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut
    j'ai enlevé la balise résolu!!!!
    "pourquoi?" vous me direz...tout simplement parce que j'ai configuré comme indiqué dans le tutor(ial)(iau) (je sais pas lequel utiliser!) bref et voila ce que j'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    070530 12:01:33  InnoDB: Log file C:\Program Files\EasyPHP 2.0b1\mysql\data\innodb\ib_logfile1 did not exist: new to be created
    InnoDB: Setting log file C:\Program Files\EasyPHP 2.0b1\mysql\data\innodb\ib_logfile1 size to 5 MB
    InnoDB: Database physically writes the file full: wait...
    InnoDB: Doublewrite buffer not found: creating new
    InnoDB: Doublewrite buffer created
    InnoDB: Creating foreign key constraint system tables
    InnoDB: Foreign key constraint system tables created
    070530 12:01:33  InnoDB: Started; log sequence number 0 0
    a savoir j'ai mis en gras les lignes qui me disent voila tu peut mettre des contraintes mais bon sa marche toujours pas!!!

    alors je remets ma requete pour que sa soit plus claire :


    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 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 ) ,
    	CONSTRAINT foreign_client FOREIGN KEY (id_client) REFERENCES user(id_user) ON DELETE CASCADE ON UPDATE CASCADE, 
    	CONSTRAINT foreign_tehcnicien FOREIGN KEY (id_technicien) REFERENCES user(id_user)
    );
    trouvez moi un autre avatar!!!!!!!!!!!!!!!
    n'attendez pas qu'on trouve des réponses pour vous, trouvez de vous même!

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut
    désolé de encore double poster mais cette fois c'est pour mettre enfin la balise resolu!!!!!!!!



    alors voila je recapitule :

    -dans mon fichier de configuration mysql je mets :

    et voila la modife que j'ai fait dans my.ini:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # Uncomment the following if you are using InnoDB tables
    innodb_data_home_dir = C:\Program Files\EasyPHP 2.0b1\mysql\data\innodb
    innodb_data_file_path = ibdata1:400M
    innodb_log_group_home_dir = C:\Program Files\EasyPHP 2.0b1\mysql\data\innodb
    innodb_log_arch_dir = C:\Program Files\EasyPHP 2.0b1\mysql\data\innodb
    # You can set .._buffer_pool_size up to 50 - 80 %
    #of RAM but beware of setting memory usage too high
    #innodb_buffer_pool_size = 16M
    #innodb_additional_mem_pool_size = 2M
    # Set .._log_file_size to 25 % of buffer pool size
    #innodb_log_file_size = 5M
    #innodb_log_buffer_size = 8M
    #innodb_flush_log_at_trx_commit = 1
    #innodb_lock_wait_timeout = 50
    a la fin du fichier, je rajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./configure --with-innodb
    (je sais pas a quoi sa sert mais bon sa marche donc je le mets!!)

    c'est la premiere etape ensuite : a la fin de la creation de chaque table conserné part les transaction, foreign key faut rajouter type=innodb; genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE matable
    (
    // .........les champs
    )type=innodb;
    et la c'est bon normalement sa marche!
    trouvez moi un autre avatar!!!!!!!!!!!!!!!
    n'attendez pas qu'on trouve des réponses pour vous, trouvez de vous même!

  14. #14
    Membre averti Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Points : 368
    Points
    368
    Par défaut
    Ok, je te remercie, ca risque de servir à plus d'une personne.

    Sinon, le bon mot, c'est tutoriel, dommage
    Si ton labeur est dur et que tes résultats sont minces, rappelles-toi qu'un jour, le grand chêne a été un gland comme toi !

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 213
    Points : 103
    Points
    103
    Par défaut
    le truc c'est que je suis un gros fainéant et lire les tuto c'est pas mon truc alors en dernier recour quand on a pas trop le choix on lis et pour tout les autre fainéant comme moi je conseil de lire quand meme

    parce que sinon
    trouvez moi un autre avatar!!!!!!!!!!!!!!!
    n'attendez pas qu'on trouve des réponses pour vous, trouvez de vous même!

+ 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