Containtes Help ! [MySql] - SQL/NoSQL - Programmation
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...)
Marsh Posté le 12-03-2003 à 20:23:53
Muse a écrit : bonjour, |
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 !)
Marsh Posté le 12-03-2003 à 21:35:06
mrBebert a écrit : Avec mysql uniquement, non. |
justement ma question est comment insérer une contrainte (etrangere par ex puis préciser la reference) dans phpmyadmin !
Marsh Posté le 12-03-2003 à 21:35:27
nraynaud a écrit : |
ca je sais
Marsh Posté le 12-03-2003 à 21:44:59
Muse a écrit : ca je sais |
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)
Marsh Posté le 13-03-2003 à 00:00:00
Muse a écrit : bonjour, |
oui bien sur, MySQL support les clés étrangères si tu utilises le format de table InnoDB
Marsh Posté le 13-03-2003 à 13:09:30
Muse a écrit : mais comment on fait 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
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
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
Marsh Posté le 17-03-2003 à 17:31:33
oui mais non on nous impose PhpMyAdmin
tant pis je vais faire avec...
Marsh Posté le 24-03-2003 à 10:54:25
bon décidement je comprend rien,
voila ce que j'ai fait :
Code :
|
Code :
|
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
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
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
Marsh Posté le 24-03-2003 à 16:19:55
Muse a écrit : bon décidement je comprend rien, |
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.
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
Marsh Posté le 24-03-2003 à 16:40:29
ton script devrait ressembler à ceci:
CREATE TABLE `etudiant` ( |
Marsh Posté le 24-03-2003 à 22:03:34
drasche a écrit : ton script devrait ressembler à ceci:
|
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
) TYPE=MyISAM
et tu peux m'expliquer pourquoi la ligne
KEY `NumeroGpe` (`NumeroGpe`), en plus ?
Merci
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).
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
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...
Marsh Posté le 24-03-2003 à 23:44:47
joce a écrit : |
joce 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.
Marsh Posté le 24-03-2003 à 23:56:22
nraynaud a écrit : |
je parle de mauvaise foi par rapport à tes sarcasmes oui
Tu sembles critiquer MySQL parce qu'il propose des types de table différent n'offrant pas les même fonctionnalités.
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
A+
Message édité par muse le 24-03-2003 à 10:55:40