Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2444 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  clé étrangère sur mysql

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

clé étrangère sur mysql

n°750124
tedhi-tech
Posté le 03-06-2004 à 09:23:22  profilanswer
 

bonjour,  
je voudrai savoir comment on fait sur mysql, une requête ayant un clé étrangère.
Pourtant je sais comment c'est syntaxiquement mais avec l'interface mysql je sais pas.
merci

mood
Publicité
Posté le 03-06-2004 à 09:23:22  profilanswer
 

n°750130
rufo
Pas me confondre avec Lycos!
Posté le 03-06-2004 à 09:29:15  profilanswer
 

une équi-jointure?
select t1.Champ1 FROM table t1, table2 t2 where t1.cleEtrangere = t2.cleEtrangere
 
c'est ça que tu cherchais?

n°750137
boulax
Inserer phrase hype en anglais
Posté le 03-06-2004 à 09:32:04  profilanswer
 

rufo a écrit :

une équi-jointure?
select t1.Champ1 FROM table t1, table2 t2 where t1.cleEtrangere = t2.clePrimaire
 
c'est ça que tu cherchais?


[:aloy]


---------------
Posté depuis des chiottes, sales. Me gusta.
n°750142
tedhi-tech
Posté le 03-06-2004 à 09:34:31  profilanswer
 

ahh nan, je veux parler au moment de la création de la table (create)
l'interface montre ou cocher pour la clé primaire mais rien pr la clé etrangère.
je suis obligé de la faire à la main? :??:

n°750151
boulax
Inserer phrase hype en anglais
Posté le 03-06-2004 à 09:39:46  profilanswer
 

pas géré en mysql :o


---------------
Posté depuis des chiottes, sales. Me gusta.
n°750153
T509
$job->GetJob(now)
Posté le 03-06-2004 à 09:40:41  profilanswer
 

oui je crois
 
cf la doc
 
ALTER TABLE yourtablename
ADD [CONSTRAINT symbol] FOREIGN KEY (...) REFERENCES anothertablename(...)
 
N'oubliez pas de commencer par créer vos index. En InnoDB versions inférieures à 3.23.50, ALTER TABLE ou CREATE INDEX ne doivent pas être utilisée avec les tables qui ont une clé étrangère, ou qui sont référencées dans une clé étrangère : toute commande ALTER TABLE supprime les contraintes de clé étrangère définie dans la table. Vous de devez pas utiliser la commande ALTER TABLE dans la table référencée non plus, mais utilisez plutôt DROP TABLE et CREATE TABLE pour modifier le schéma. Lorsque MySQL fait un ALTER TABLE il peut utiliser en interne la commande RENAME TABLE , et cela va poser un problème à la clé étrangère à laquelle la table se réfère. Une commande CREATE INDEX est traitée par MySQL comme une commande ALTER TABLE , et les mêmes restrictions s'appliquent.
 
Lorsqu'il fait des vérifications de clé étrangères, InnoDB pose des verrous de lignes sur les lignes filles et mères qu'il doit utiliser. InnoDB vérifie les contraintes immédiatement : la vérification n'est pas reportée à la validation de la transaction.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°750166
tedhi-tech
Posté le 03-06-2004 à 09:49:21  profilanswer
 

oki mai j'ai pas très bien compris, ce que je sais c'est que lors du create table il faut à la fin sur le champ étranger faire un references mai je sais plus comment faire.
oki je savais pas pr mysql ne générai pas les clés etrangères erff :o  

Citation :

code:
CREATE TABLE `nuke_source` (
`lid` INT( 50 ) NOT NULL AUTO_INCREMENT,
`localisation` INT( 1 ) DEFAULT '0' NOT NULL ,
`nom_base` VARCHAR( 50 ) NOT NULL ,
`user_conn` VARCHAR( 50 ) NOT NULL ,
`pwd_user` VARCHAR( 50 ) NOT NULL ,
`bid` INT( 10 ) NOT NULL ,  // la clé etrangère est là !
PRIMARY KEY ( `lid` )  
);

 

n°750180
boulax
Inserer phrase hype en anglais
Posté le 03-06-2004 à 09:56:29  profilanswer
 

Faudra gérer l'intégrité toi meme...


---------------
Posté depuis des chiottes, sales. Me gusta.
n°750185
tedhi-tech
Posté le 03-06-2004 à 09:57:42  profilanswer
 

comment ??
je sais que ya un references à faire sur cette clé mais j'ai oublié la syntaxe :fou:  
merci

n°750223
boulax
Inserer phrase hype en anglais
Posté le 03-06-2004 à 10:22:41  profilanswer
 

non justement y'a pas ces mécanismes...  ce que je voulais dire c'est que par exemple, lors de la suppression d'un engeristrement de la table etrangere, il faudra verifier que la clé etrangere n'est pas utilisée dans la table nuke_source, ou alors faires des suppressions en cascade


---------------
Posté depuis des chiottes, sales. Me gusta.
mood
Publicité
Posté le 03-06-2004 à 10:22:41  profilanswer
 

n°750226
tedhi-tech
Posté le 03-06-2004 à 10:24:28  profilanswer
 

j'ai rien à faire ????? laisse comme tel !!!
ou je fais un references comme cela:

Citation :


REFERENCES nuke_blocks(`bid`) INT( 10 ) NOT NULL ,


comme cela ? :pt1cable:  

n°750269
ratibus
Posté le 03-06-2004 à 10:41:53  profilanswer
 

boulax a écrit :

non justement y'a pas ces mécanismes...  ce que je voulais dire c'est que par exemple, lors de la suppression d'un engeristrement de la table etrangere, il faudra verifier que la clé etrangere n'est pas utilisée dans la table nuke_source, ou alors faires des suppressions en cascade

En MyISAM, le type de table par défaut, l'intégrité référentielle (donc la gestion des clés étrangères) n'est pas gérée (de même que les transactions par exemple).
Cependant si le type de table est InnoDB aucun problème de gestion de clé étrangère et de transaction.
 
C'est une erreur commune de dire que MySQL ne gère pas les clés étrangères et les transactions alors qu'il les gèrent très bien.

n°750287
tedhi-tech
Posté le 03-06-2004 à 10:47:15  profilanswer
 

j'ai pas compris tes termes:
MyISAM
InnoDB.
et essaye de répondre à ma question précèdente stp.
merci :jap:

n°750333
ratibus
Posté le 03-06-2004 à 11:13:29  profilanswer
 

Tedhi-tech a écrit :

j'ai pas compris tes termes:
MyISAM
InnoDB.
et essaye de répondre à ma question précèdente stp.
merci :jap:


En fait quand tu travaille avec MySQL tu peux choisir ton type de table (les tables que tu créees peuvent être en MyISAM, InnoDB, BerkeleyDB, HEAP...)
Si tu veux géré les clé étrangère au niveau de la base de données (et pas au niveau applicatif PHP), il faut que tes tables soient du type InnoDB.
 
Tu auras toutes les infos que tu souhaites sur cette page et sur les pages connexes : http://dev.mysql.com/doc/mysql/en/CREATE_TABLE.html

n°750338
tedhi-tech
Posté le 03-06-2004 à 11:15:55  profilanswer
 

oki merci beaucoup  :)

n°752106
tedhi-tech
Posté le 04-06-2004 à 10:28:49  profilanswer
 

bonjour,  
je voudrai relancer ce topic car j'ai essayé de créer ma table en prenant en compte ma clé étrangère mais mysql ne la raconnait pas !!!!
avec innoDB !!!

Code :
  1. CREATE TABLE nuke_source (
  2. lid INT( 50 ) NOT NULL AUTO_INCREMENT,
  3. localisation INT( 1 ) DEFAULT 0 NOT NULL ,
  4. nom_base VARCHAR( 50 ) NOT NULL ,
  5. user_conn VARCHAR( 50 ) NOT NULL ,
  6. pwd_user VARCHAR( 50 ) NOT NULL ,
  7. bid  INT( 10 ) NOT NULL ,
  8. FOREIGN KEY (bid) REFERENCES nuke_blocks(bid),
  9. PRIMARY KEY ( lid)
  10. ) TYPE=INNODB;


merci
peut-etre que c'est un problème de version de Mysql ??
j'ai la 3.23.49  :heink:

n°752133
drasche
Posté le 04-06-2004 à 10:40:21  profilanswer
 

c'est pas un problème de version. la table nuke_blocks existe-t-elle? quel est le message d'erreur?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°752155
tedhi-tech
Posté le 04-06-2004 à 10:47:48  profilanswer
 

en faites oui la table nuke_blocks existe deja et mais ne prend pas en compte la clé etrangère, quand je fait un pti test avec un script avec show !!
en commande mon create table apparait sans clé étrangère avec type=MyIsam !!
mais moi je veux en InnoDB !!
je crois que c'est la version car quand je regarde sur mon interface mysql en modif j'ai pas le choix InnoDB !!

n°752297
drasche
Posté le 04-06-2004 à 11:40:23  profilanswer
 

ah oui, si InnoDB n'est pas activé, il créera tout de même la table... en MyISAM [:joce]
 
faut que tu actives InnoDB dans my.ini avant d'aller plus loin [:spamafote] (note qu'en MySQL 4.0, il est actif par défaut).


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°752310
tedhi-tech
Posté le 04-06-2004 à 11:44:34  profilanswer
 

je trouve pas ce fichier !!!  :pfff:  :??:

n°752326
tedhi-tech
Posté le 04-06-2004 à 11:47:37  profilanswer
 

oki g trouvé !!!

Code :
  1. #This File was made using the WinMySQLAdmin 1.4 Tool
  2. #18/05/2004 10:24:36
  3. #Uncomment or Add only the keys that you know how works.
  4. #Read the MySQL Manual for instructions
  5. [mysqld]
  6. basedir=D:/Mgappext/intranetdgaosi/mysql-3.23.49
  7. #bind-address=172.16.10.39
  8. datadir=D:/Mgappext/intranetdgaosi/mysql-3.23.49/data
  9. #language=D:/Mgappext/intranetdgaosi/mysql-3.23.49/share/your language directory
  10. #slow query log#=
  11. #tmpdir#=
  12. #port=3306
  13. #set-variable=key_buffer=16M
  14. [WinMySQLadmin]
  15. Server=D:/Mgappext/intranetdgaosi/mysql-3.23.49/bin/mysqld-nt.exe


j'ai cela ds le fichier je configure comment??
merci

n°752342
boulax
Inserer phrase hype en anglais
Posté le 04-06-2004 à 11:54:09  profilanswer
 

google: activer innodb -> tuto de drasche  :D  
 
http://forum.hardware.fr/hardwaref [...] 2943-1.htm


---------------
Posté depuis des chiottes, sales. Me gusta.
n°752345
tedhi-tech
Posté le 04-06-2004 à 11:55:31  profilanswer
 

oki merci !!!!  :)

n°752457
tedhi-tech
Posté le 04-06-2004 à 13:30:42  profilanswer
 

dsl mais sa marche pas, je pense que c'est qui y arrive pa lol
??? deja le fichier est ds c:\windows et ensuite je suis la procédure comme indiquée je le met à la suite des infos deja existante en enlevant les dièses redemarre et tjrs pareil :o  
???

n°752472
tedhi-tech
Posté le 04-06-2004 à 13:46:09  profilanswer
 

bin maintenant il y a un message d'erreur et c'est:
erreur 1067: le processus s'est arrêté inopinément !!!!

n°752574
drasche
Posté le 04-06-2004 à 14:44:26  profilanswer
 

boulax a écrit :

google: activer innodb -> tuto de drasche  :D  
 
http://forum.hardware.fr/hardwaref [...] 2943-1.htm


ptain j'avais oublié que j'en parlais [:ddr555]
 
Tedhi-tech> au cas où, tu dois créer les répertoires configurés pour InnoDB sinon MySQL ne démarrera pas.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°752577
boulax
Inserer phrase hype en anglais
Posté le 04-06-2004 à 14:48:07  profilanswer
 

en premier resultat la classe [:must]


---------------
Posté depuis des chiottes, sales. Me gusta.
n°752596
drasche
Posté le 04-06-2004 à 14:54:40  profilanswer
 

euh t'as fait une recherche sur quoi? [:yoko54]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°752610
tedhi-tech
Posté le 04-06-2004 à 14:58:19  profilanswer
 

je vais paraitre un peu con mais de quel repertoire parle tu dsl ??  :sweat:

n°752618
drasche
Posté le 04-06-2004 à 15:02:29  profilanswer
 

dans le topic donné plus haut, je donne un exemple de configuration InnoDB. Il y a 3 répertoires distincts à configurer qui apparaissent dans cette config (sinon il y a les exemples de config que je mentionne également dans le topic)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°752627
tedhi-tech
Posté le 04-06-2004 à 15:07:18  profilanswer
 

Code :
  1. innodb_data_home_dir = c:ibdata
  2.   innodb_log_group_home_dir = c:iblogs
  3.   innodb_log_arch_dir = c:iblogs


tu parle de ces 3 là ?

n°752663
boulax
Inserer phrase hype en anglais
Posté le 04-06-2004 à 15:27:07  profilanswer
 

drasche a écrit :

euh t'as fait une recherche sur quoi? [:yoko54]


 
google -> activer innodb -> j'ai de la chance [:itm]


---------------
Posté depuis des chiottes, sales. Me gusta.
n°752671
tedhi-tech
Posté le 04-06-2004 à 15:31:24  profilanswer
 

oui je sais j'ai été voir mais sa marche pas
il me parle de vérifier ds fichiers à créer j'ai pas compris pk sa marche pas ??

n°752672
drasche
Posté le 04-06-2004 à 15:31:39  profilanswer
 

Tedhi-tech a écrit :

Code :
  1. innodb_data_home_dir = c:ibdata
  2.   innodb_log_group_home_dir = c:iblogs
  3.   innodb_log_arch_dir = c:iblogs


tu parle de ces 3 là ?


oui. A la base, je n'oserais pas dire sur quoi ils pointent réellement (sans doute devraient-ils se trouver sous le répertoire data de MySQL (là où sont stockées tes bases de données actuelles, par exemple: c:\mysql\data). Perso je leur mettais des répertoires absolus, mais je ne m'en sers plus pour l'instant.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°752693
tedhi-tech
Posté le 04-06-2004 à 15:35:23  profilanswer
 

ah oki pr le permier repertoire je voit lekel c'est mais le reste  
je sais pas je dois pointer où cela correspond à quoi?
sorry encore :pt1cable:

n°752699
drasche
Posté le 04-06-2004 à 15:37:06  profilanswer
 

si t'as mysql dans c:\mysql, ça sera genre:
 
c:\mysql\data\iblogs
c:\mysql\data\ibdata
 
(j'en suis pas plus sûr que ça hein, essaie, tu finiras bien par y arriver :D)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°752709
tedhi-tech
Posté le 04-06-2004 à 15:42:06  profilanswer
 

je crois que je vais devenir fous  :pt1cable:  :pt1cable:  :o  
est ce que tu sais à quoi ils correspondent par j'ai plein de repertoires !! :pfff:  
merci :jap:

n°752713
drasche
Posté le 04-06-2004 à 15:44:30  profilanswer
 

j'y arrive plus non plus :(
 
faut que je réessaie, ça servirait au moins à compléter l'autre topic :/


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°752717
tedhi-tech
Posté le 04-06-2004 à 15:46:25  profilanswer
 

ouai merci c'est cool !!  :jap:

n°752833
tedhi-tech
Posté le 04-06-2004 à 16:19:28  profilanswer
 

j'ai trouver un truc qui peut nous aider  :love:  
mais pour ma part je comprend pas trop lol
voici le lien: http://webdocs.math.univ-rennes1.f [...] start.html
il me reste 3/4 heure apres fini le boulot pourrai plus toucher mysql erff

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  clé étrangère sur mysql

 

Sujets relatifs
Créer un diagramme venant des tables de MySQLConnexion JSP/MySql
[MySQL] Probleme avec la Replication MySQLReplication MySQL
comment spécifier une clé étrangère dans une table avec mysql ?MYSQL clé étrangère?
[mySQL] Définiton d'une clé étrangèreMySQL clé étrangère
[mysql] cle etrangere..[MySQL] Clé étrangére
Plus de sujets relatifs à : clé étrangère sur mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR