[MySql] Containtes Help !

Containtes Help ! [MySql] - SQL/NoSQL - Programmation

Marsh Posté le 12-03-2003 à 18:05:52    

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
Reply

Marsh Posté le 12-03-2003 à 18:05:52   

Reply

Marsh Posté le 12-03-2003 à 20:16:32    

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
Reply

Marsh Posté le 12-03-2003 à 20:23:53    

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 !)

Reply

Marsh Posté le 12-03-2003 à 21:35:06    

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 !

Reply

Marsh Posté le 12-03-2003 à 21:35:27    

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]

Reply

Marsh Posté le 12-03-2003 à 21:44:59    

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)

Reply

Marsh Posté le 13-03-2003 à 00:00:00    

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

Reply

Marsh Posté le 13-03-2003 à 10:16:29    

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

Reply

Marsh Posté le 13-03-2003 à 13:09:30    

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 :/

Reply

Marsh Posté le 13-03-2003 à 13:13:36    

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

Reply

Marsh Posté le 13-03-2003 à 13:13:36   

Reply

Marsh Posté le 13-03-2003 à 23:40:19    

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  :(

Reply

Marsh Posté le 14-03-2003 à 08:38:58    

ba tu fais un show create table

Reply

Marsh Posté le 15-03-2003 à 01:33:25    

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

Reply

Marsh Posté le 17-03-2003 à 17:31:33    

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

Reply

Marsh Posté le 24-03-2003 à 10:54:25    

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
Reply

Marsh Posté le 24-03-2003 à 15:36:56    

:bounce:  :(

Reply

Marsh Posté le 24-03-2003 à 16:03:35    

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

Reply

Marsh Posté le 24-03-2003 à 16:19:55    

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.

Reply

Marsh Posté le 24-03-2003 à 16:32:47    

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)
Reply

Marsh Posté le 24-03-2003 à 16:40:29    

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)
Reply

Marsh Posté le 24-03-2003 à 22:03:34    

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
Reply

Marsh Posté le 24-03-2003 à 22:31:22    

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)
Reply

Marsh Posté le 24-03-2003 à 22:48:23    

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)
Reply

Marsh Posté le 24-03-2003 à 23:31:54    

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...

Reply

Marsh Posté le 24-03-2003 à 23:44:47    

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.

Reply

Marsh Posté le 24-03-2003 à 23:56:22    

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.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed