Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Administration
Administration Forum d'entraide sur l'administration de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/05/2007, 15h54   #1
Membre régulier
 
Inscription : décembre 2006
Messages : 213
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2006
Messages : 213
Points : 70
Points : 70
Par défaut easyphp-> create table-> clé etrangere?

alors je crée mes tables à la main!
donc voila le create table

TABLE CONTRAT
Code :
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 :
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!
touille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 16h16   #2
Membre chevronné
 
Avatar de LeXo
 
Inscription : 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 : 782
Points : 782
je mets des clés étrangère comme ceci si ça peux t'aider

Code :
ALTER TABLE contrat ADD CONSTRAINT constraint_fAgence (id_contrat) REFERENCES Client(id_client);
FOREIGN KEY
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 17h04   #3
Membre régulier
 
Inscription : décembre 2006
Messages : 213
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2006
Messages : 213
Points : 70
Points : 70
merci pour la reponse mais le probleme persiste...je peut encore et toujours
inserer des contrat sans avoir de client!
touille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 17h44   #4
Membre chevronné
 
Avatar de LeXo
 
Inscription : 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 : 782
Points : 782
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
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 09h14   #5
Membre régulier
 
Inscription : décembre 2006
Messages : 213
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2006
Messages : 213
Points : 70
Points : 70
a vrai dire le c'est easy php qui le mets!!!
et justement je travaille avec mais je veux pas qui me le fasse!
touille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 12h53   #6
Membre chevronné
 
Avatar de LeXo
 
Inscription : 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 : 782
Points : 782
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
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 14h35   #7
Membre régulier
 
Inscription : décembre 2006
Messages : 213
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2006
Messages : 213
Points : 70
Points : 70
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
touille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 16h06   #8
Membre régulier
 
Inscription : décembre 2006
Messages : 213
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2006
Messages : 213
Points : 70
Points : 70
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!
touille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 16h22   #9
Membre éclairé
 
Avatar de binouzzz19
 
Inscription : avril 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2007
Messages : 381
Points : 325
Points : 325
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 !
binouzzz19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 16h29   #10
Membre régulier
 
Inscription : décembre 2006
Messages : 213
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2006
Messages : 213
Points : 70
Points : 70
sur un autre forum on me dit d'activer innodb mais je ne sais pas le faire
sinon d'utiliser mysql 5!!
touille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 16h43   #11
Membre éclairé
 
Avatar de binouzzz19
 
Inscription : avril 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2007
Messages : 381
Points : 325
Points : 325
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 !
binouzzz19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 12h11   #12
Membre régulier
 
Inscription : décembre 2006
Messages : 213
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2006
Messages : 213
Points : 70
Points : 70
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 :
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 :
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)
);
touille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 14h46   #13
Membre régulier
 
Inscription : décembre 2006
Messages : 213
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2006
Messages : 213
Points : 70
Points : 70
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 :
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 :
./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 :
1
2
3
4
CREATE TABLE matable
(
// .........les champs
)type=innodb;
et la c'est bon normalement sa marche!
touille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 14h54   #14
Membre éclairé
 
Avatar de binouzzz19
 
Inscription : avril 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 25
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : avril 2007
Messages : 381
Points : 325
Points : 325
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 !
binouzzz19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2007, 15h18   #15
Membre régulier
 
Inscription : décembre 2006
Messages : 213
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2006
Messages : 213
Points : 70
Points : 70
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
touille est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h47.


 
 
 
 
Partenaires

Hébergement Web