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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySql] Containtes Help !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySql] Containtes Help !

n°331002
muse
A kiss that can't renew
Posté le 12-03-2003 à 18:05:52  profilanswer
 

UPDATE => Voir dernier post
 
**************************
 
bonjour,
 
je débute en php/Mysql (MyAdmin).
je voudrais savoir s'il existe un moyen de mettre des containtes (unique, clé étrangére etc..) autre que d'écrire et éxécuter la requête manuellement. Parce qu'il n'y a pas d'affichage disant que j'ai inscrit une contrainte manuellement [:slyengel]
 
A+


Message édité par muse le 24-03-2003 à 10:55:40
mood
Publicité
Posté le 12-03-2003 à 18:05:52  profilanswer
 

n°331160
mrbebert
Posté le 12-03-2003 à 20:16:32  profilanswer
 

Avec mysql uniquement, non.
Il faut que tu affiches la description de la table pour vérifier sa structure (explain nom_table).
 
Mais tu peux utiliser une interface graphique (phpmyadmin...) :)


Message édité par mrbebert le 12-03-2003 à 20:17:28
n°331171
nraynaud
lol
Posté le 12-03-2003 à 20:23:53  profilanswer
 

Muse a écrit :

bonjour,
 
je débute en php/Mysql (MyAdmin).
je voudrais savoir s'il existe un moyen de mettre des containtes (unique, clé étrangére etc..) autre que d'écrire et éxécuter la requête manuellement. Parce qu'il n'y a pas d'affichage disant que j'ai inscrit une contrainte manuellement [:slyengel]
 
A+


 
et oublie pas de foutre un index sur chaque colonne qui possède une contrainte.
 
(y'en a qui ont oublié et ils ont eu des problèmes !)

n°331294
muse
A kiss that can't renew
Posté le 12-03-2003 à 21:35:06  profilanswer
 

mrBebert a écrit :

Avec mysql uniquement, non.
Il faut que tu affiches la description de la table pour vérifier sa structure (explain nom_table).
 
Mais tu peux utiliser une interface graphique (phpmyadmin...) :)

justement ma question est comment insérer une contrainte (etrangere par ex puis préciser la reference) dans phpmyadmin !

n°331296
muse
A kiss that can't renew
Posté le 12-03-2003 à 21:35:27  profilanswer
 

nraynaud a écrit :


 
et oublie pas de foutre un index sur chaque colonne qui possède une contrainte.
 
(y'en a qui ont oublié et ils ont eu des problèmes !)

ca je sais [:special k]

n°331315
nraynaud
lol
Posté le 12-03-2003 à 21:44:59  profilanswer
 

Muse a écrit :

ca je sais [:special k]


 
Je précise pas que pour toi, l'autre fois y'avait quelqu'un qui se plaignait de la lenteur de sa jointure (il avait pas dû capter que ses inserts aussi devaient être super-lents)

n°331721
joce
Architecte / Développeur principal
"BugHunter"
Posté le 13-03-2003 à 00:00:00  profilanswer
 

Muse a écrit :

bonjour,
 
je débute en php/Mysql (MyAdmin).
je voudrais savoir s'il existe un moyen de mettre des containtes (unique, clé étrangére etc..) autre que d'écrire et éxécuter la requête manuellement. Parce qu'il n'y a pas d'affichage disant que j'ai inscrit une contrainte manuellement [:slyengel]
 
A+

oui bien sur, MySQL support les clés étrangères si tu utilises le format de table InnoDB

n°331871
muse
A kiss that can't renew
Posté le 13-03-2003 à 10:16:29  profilanswer
 

mais comment on fait  [:flourella] me faut un tuto avec print screen

n°332051
joce
Architecte / Développeur principal
"BugHunter"
Posté le 13-03-2003 à 13:09:30  profilanswer
 

Muse a écrit :

mais comment on fait  [:flourella] me faut un tuto avec print screen

ch'uis pas sur que phpmyadmin sache gerer les foreign key en natif ceci dit, tu vas etre bon pour ecrire les requetes a la main :/

n°332057
drasche
Posté le 13-03-2003 à 13:13:36  profilanswer
 

je viens de regarder la 2.4.0 par curiosité, et je n'ai rien vu qui permette de gérer les foreign keys :/

mood
Publicité
Posté le 13-03-2003 à 13:13:36  profilanswer
 

n°332719
muse
A kiss that can't renew
Posté le 13-03-2003 à 23:40:19  profilanswer
 

drasche a écrit :

je viens de regarder la 2.4.0 par curiosité, et je n'ai rien vu qui permette de gérer les foreign keys :/

ben vala faut le faire par requete manuellement je crois, et ce qui est chiant c qu'il y a rien qui dit si on a mis cette contrainte  :(

n°332902
joce
Architecte / Développeur principal
"BugHunter"
Posté le 14-03-2003 à 08:38:58  profilanswer
 

ba tu fais un show create table

n°333941
Elphin
Posté le 15-03-2003 à 01:33:25  profilanswer
 

www.mysqlyog.com te permet de créer des contraintes...

n°335612
muse
A kiss that can't renew
Posté le 17-03-2003 à 17:31:33  profilanswer
 

oui mais non on nous impose PhpMyAdmin  [:siegfried]  
 
tant pis je vais faire avec...

n°341150
muse
A kiss that can't renew
Posté le 24-03-2003 à 10:54:25  profilanswer
 

bon décidement je comprend rien,
 
voila ce que j'ai fait :
 

Code :
  1. etudiant CREATE TABLE `etudiant` (
  2. `NumeroEt` int(15) NOT NULL auto_increment,
  3. `Nom` varchar(20) NOT NULL default '',
  4. `Prenom` varchar(15) NOT NULL default '',
  5. `NumeroGpe`int(15) NOT NULL default '',
  6. `Datenaiss` varchar(10) NOT NULL default '',
  7. `Sexe` varchar(10) NOT NULL default '',
  8. `Adresse` varchar(50) NOT NULL default '',
  9. `CP` varchar(5) NOT NULL default '',
  10. `Ville` varchar(15) NOT NULL default '',
  11. `Tel` varchar(10) default NULL,
  12. `Mail` varchar(50) default NULL,
  13. `Promotion` varchar(15) default NULL,
  14. `Etat` varchar(20) default NULL,
  15. PRIMARY KEY  (`NumeroEt`),
  16. UNIQUE KEY `NumeroEt` (`NumeroEt`)
  17. )


 

Code :
  1. ALTER TABLE etudiant ADD CONSTRAINT FOREIGN KEY ce_NumeroGpe
  2. (NumeroGpe) REFERENCES groupe (NumeroGpe) ;


 
et quand je fais un show create table etudiant, j'ai la même structure de données qu'avant, sans prise en compte de la requête alter table [:flourella]
 
bien sur que la table groupe est déja crée...et je n'ai pas d'erreurs lors de l'execution des requêtes...MySql ne mémorise pas les clés étrangéres ou quoi  :heink:


Message édité par muse le 24-03-2003 à 11:05:53
n°341525
muse
A kiss that can't renew
Posté le 24-03-2003 à 15:36:56  profilanswer
 

:bounce:  :(

n°341558
mims1664
3 / vert
Posté le 24-03-2003 à 16:03:35  profilanswer
 

zoooby moi je c po je te souhate bon courage !!! je c mm po c koi une contraite !lol

n°341581
nraynaud
lol
Posté le 24-03-2003 à 16:19:55  profilanswer
 

Muse a écrit :

bon décidement je comprend rien,
roGpe) ;[/cpp]
 
et quand je fais un show create table etudiant, j'ai la même structure de données qu'avant, sans prise en compte de la requête alter table [:flourella]
 
bien sur que la table groupe est déja crée...et je n'ai pas d'erreurs lors de l'execution des requêtes...MySql ne mémorise pas les clés étrangéres ou quoi  :heink:  


 
Dans le monde merveilleux (je dirais plutôt fantastique en fait) de MySQL, y'a des trucs qui dépendent du type de table que tu utilise, comme les clefs étrangères sont du plus haut degré de complexité, je suppose que c'est pas dispo avec les formats de table par défaut.  
 
Non, j'ai aucune idée de comment on change ou choisit le format d'une table.

n°341595
drasche
Posté le 24-03-2003 à 16:32:47  profilanswer
 

en plus ça a été dit plus haut: les foreign keys ne sont gérées qu'avec le type de table InnoDB.
 
Edit: d'ailleurs le type de table manque dans son create table ;)


Message édité par drasche le 24-03-2003 à 16:33:14

---------------
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°341606
drasche
Posté le 24-03-2003 à 16:40:29  profilanswer
 

ton script devrait ressembler à ceci:
 

CREATE TABLE `etudiant` (
 `NumeroEt` int(15) NOT NULL auto_increment,
 `Nom` varchar(20) NOT NULL default '',
 `Prenom` varchar(15) NOT NULL default '',
 `NumeroGpe`int(15) NOT NULL default '',
 `Datenaiss` varchar(10) NOT NULL default '',
 `Sexe` varchar(10) NOT NULL default '',
 `Adresse` varchar(50) NOT NULL default '',
 `CP` varchar(5) NOT NULL default '',
 `Ville` varchar(15) NOT NULL default '',
 `Tel` varchar(10) default NULL,
 `Mail` varchar(50) default NULL,
 `Promotion` varchar(15) default NULL,
 `Etat` varchar(20) default NULL,
 PRIMARY KEY  (`NumeroEt`),
 KEY `NumeroGpe` (`NumeroGpe`),
 UNIQUE KEY `NumeroEt` (`NumeroEt`),
 FOREIGN KEY ce_NumeroGpe (`NumeroGpe`) REFERENCES `groupe` (`NumeroGpe`)
) TYPE=InnoDB;


---------------
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°342088
muse
A kiss that can't renew
Posté le 24-03-2003 à 22:03:34  profilanswer
 

drasche a écrit :

ton script devrait ressembler à ceci:
 

CREATE TABLE `etudiant` (
 `NumeroEt` int(15) NOT NULL auto_increment,
 `Nom` varchar(20) NOT NULL default '',
 `Prenom` varchar(15) NOT NULL default '',
 `NumeroGpe`int(15) NOT NULL default '',
 `Datenaiss` varchar(10) NOT NULL default '',
 `Sexe` varchar(10) NOT NULL default '',
 `Adresse` varchar(50) NOT NULL default '',
 `CP` varchar(5) NOT NULL default '',
 `Ville` varchar(15) NOT NULL default '',
 `Tel` varchar(10) default NULL,
 `Mail` varchar(50) default NULL,
 `Promotion` varchar(15) default NULL,
 `Etat` varchar(20) default NULL,
 PRIMARY KEY  (`NumeroEt`),
 KEY `NumeroGpe` (`NumeroGpe`),
 UNIQUE KEY `NumeroEt` (`NumeroEt`),
 FOREIGN KEY ce_NumeroGpe (`NumeroGpe`) REFERENCES `groupe` (`NumeroGpe`)
) TYPE=InnoDB;



merci, j'ai copié collé et executé, mais après quand je fais un show create table etudiant il me renvoie :
 
CREATE TABLE `etudiant` (
 `NumeroEt` int(15) NOT NULL auto_increment,
 `Nom` varchar(20) NOT NULL default '',
 `Prenom` varchar(15) NOT NULL default '',
 `NumeroGpe` int(15) NOT NULL default '0',
 `Datenaiss` varchar(10) NOT NULL default '',
 `Sexe` varchar(10) NOT NULL default '',
 `Adresse` varchar(50) NOT NULL default '',
 `CP` varchar(5) NOT NULL default '',
 `Ville` varchar(15) NOT NULL default '',
 `Tel` varchar(10) default NULL,
 `Mail` varchar(50) default NULL,
 `Promotion` varchar(15) default NULL,
 `Etat` varchar(20) default NULL,
 PRIMARY KEY  (`NumeroEt`),
 UNIQUE KEY `NumeroEt` (`NumeroEt`),
 KEY `NumeroGpe` (`NumeroGpe`) <--il manque des choses la  :heink:  
) TYPE=MyISAM  :heink:
 
et tu peux m'expliquer pourquoi la ligne  
KEY `NumeroGpe` (`NumeroGpe`), en plus ?
 
Merci


Message édité par muse le 24-03-2003 à 22:13:36
n°342103
drasche
Posté le 24-03-2003 à 22:31:22  profilanswer
 

Parce que InnoDB n'est pas activé par défaut, tout simplement.  Ta base est en local ou chez un hébergeur?  Quel genre?  Il l'a ptet pas activé, lui (et dans ce cas tu peux oublier à mon avis).


---------------
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°342125
drasche
Posté le 24-03-2003 à 22:48:23  profilanswer
 

si c'est chez toi, voici un link qui peut t'aider pour activer InnoDB (je t'épargne la recherche):
 
http://forum.hardware.fr/forum2.php3?post=28392&cat=10


---------------
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°342153
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 24-03-2003 à 23:31:54  profilanswer
 

faut surtout une distrib mysql-max/pro, même sans ligne dans le my.cnf innodb est lancé de base.
nraynaud > arrête la mauvaise foi...

n°342158
nraynaud
lol
Posté le 24-03-2003 à 23:44:47  profilanswer
 

joce a écrit :


nraynaud > arrête la mauvaise foi...


 

joce a écrit :


MySQL support les clés étrangères si tu utilises le format de table InnoDB


 
Soit tu as un problème de vocabulaire et tu confonds mauvaise fois et penchant pour le sarcasme (ce qui me parraît le plus probable) soit tu raconte n'importe quoi sur MySQL et je ferais bien mieux de ne pas répéter.

n°342166
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 24-03-2003 à 23:56:22  profilanswer
 

nraynaud a écrit :


 
 
 
Soit tu as un problème de vocabulaire et tu confonds mauvaise fois et penchant pour le sarcasme (ce qui me parraît le plus probable) soit tu raconte n'importe quoi sur MySQL et je ferais bien mieux de ne pas répéter.

je parle de mauvaise foi par rapport à tes sarcasmes oui :D
Tu sembles critiquer MySQL parce qu'il propose des types de table différent n'offrant pas les même fonctionnalités.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySql] Containtes Help !

 

Sujets relatifs
[MySQL]Est que ca vaut le coup d'updater mysql 3->4Passer d'un fichier XML à MySQL
Hacking et faille de sécurité MySQL, aidez-moi à me protéger.Prb MySQL
[MYSQL]Fonctionnnement du type DECIMAL dans une base MySQL[HELP] Sauvegarde d'une base de données mysql
Mysql et Visual Basic 6.0 - Connecter les 2 ?Limite de tables dans une base MySQL ?
[Mysql] error 127 ??? 
Plus de sujets relatifs à : [MySql] Containtes Help !


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