| | Nick Ar Gall | Posté le 20/07/2005 @ 16:58 | Petit astucien
18 Messages
| Bonjour à tous, j'ai un souci de création de table sous mysql avec phpmyadmin. J'ai utilisé cette interface pour ma table et il me sort une erreur #1064 syntaxe, qqun peut me dire ou ça cloche? Voici la requete:
CREATE TABLE `prospection` (
`id_pros` INT( 3 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT ,
`p_appel` DATE DEFAULT '0000-00-00' NOT NULL ,
`d_appel` DATE DEFAULT '0000-00-00' NOT NULL ,
`resultat` INT( 2 ) UNSIGNED ZEROFILL NOT NULL ,
`comment` TEXT( 200 ) NOT NULL ,
`url` VARCHAR( 40 ) NOT NULL ,
`keywords` VARCHAR( 100 ) NOT NULL ,
`tel` VARCHAR( 30 ) NOT NULL ,
`ctact` VARCHAR( 100 ) NOT NULL ,
`fonction` VARCHAR( 50 ) NOT NULL ,
`ld` VARCHAR( 30 ) NOT NULL ,
`mail_ctact` VARCHAR( 40 ) NOT NULL ,
`d_rappel` DATE( 10 ) NOT NULL ,
`h_rappel` TIME( 5 ) NOT NULL ,
`ca_adequat` FLOAT( 10 ) NOT NULL ,
`cout_rcom` FLOAT( 10 ) NOT NULL ,
`raissoc` VARCHAR( 50 ) NOT NULL ,
`fax` VARCHAR( 20 ) NOT NULL ,
`adr` VARCHAR( 100 ) NOT NULL ,
`cp` VARCHAR( 10 ) NOT NULL ,
`ville` VARCHAR( 40 ) NOT NULL ,
`id_apporteur` INT( 3 ) NOT NULL ,
`id_commercial` INT( 3 ) NOT NULL ,
`date_rel_adequat` DATE DEFAULT '0000-00-00' NOT NULL ,
`h_rel_adequat` TIME( 5 ) NOT NULL ,
`date_rel_rcom` DATE DEFAULT '0000-00-00' NOT NULL ,
`h_rel_rcom` TIME( 5 ) NOT NULL ,
`comment_adequat` TEXT( 500 ) NOT NULL ,
`comment_rcom` VARCHAR( 500 ) NOT NULL ,
`date_info_rcom` DATE DEFAULT '0000-00-00' NOT NULL ,
`propale_rcom` INT( 1 ) NOT NULL ,
`bdc_adequat` INT( 1 ) NOT NULL ,
`date_decision` VARCHAR( 50 ) NOT NULL ,
`etat_dossier` VARCHAR( 10 ) NOT NULL ,
`id_rcom` INT( 2 ) NOT NULL ,
`xxx` VARCHAR( 2 ) NOT NULL ,
`zzz` VARCHAR( 2 ) NOT NULL ,
PRIMARY KEY ( `id_pros` ) ,
INDEX ( `resultat` )
)
MySQL a répondu:
#1064 - Erreur de syntaxe près de '( 200 ) NOT NULL ,
`url` VARCHAR( 40 ) NOT NULL ,
`keywo' à la ligne 5
Merci d'avance
| | |
| |
| Publicité |
|
| | koala01 | Posté le 20/07/2005 à 18:59 | Astucien
4715 Messages
| Salut,
Sauf erreur de ma part, le type varchar ne supporte qu'un maximum de 255 caractères...
L'erreur serait donc dans la définition du champs comment_rcom dans laquelle, soit tu dois choisir un autre type (text, par exemple) soit tu dois choisir une taille maximale de 255 caractères [clindoeil] | | | | | Nick Ar Gall | Posté le 21/07/2005 à 09:15 | Petit astucien
18 Messages
| Bon ben je sais pas trop, j'ai enlevé les définitions de taille max de mes champs DATE, TIME, TEXT les uns après les autres par élimination, j'ai modifié certains champs VARCHAR en TEXT, j'ai remplacé le nom du champ 'keywords' par 'kwords' (sur les conseils d'un autre forum) et là ça a fonctionné. mais j'aime pas trop laisser des champs sans définition de taille max ...
Pour info, voici la requete qui fonctionne
Merci de ton aide :)
CREATE TABLE `prospection` (
`id_pros` INT( 3 ) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT ,
`p_appel` DATE DEFAULT '0000-00-00' NOT NULL ,
`d_appel` DATE DEFAULT '0000-00-00' NOT NULL ,
`resultat` INT( 2 ) UNSIGNED ZEROFILL NOT NULL ,
`comm` VARCHAR( 200 ) NOT NULL ,
`url` VARCHAR( 40 ) NOT NULL ,
`kwords` VARCHAR( 100 ) NOT NULL ,
`tel` VARCHAR( 30 ) NOT NULL ,
`ctact` VARCHAR( 100 ) NOT NULL ,
`fonction` VARCHAR( 50 ) NOT NULL ,
`ld` VARCHAR( 30 ) NOT NULL ,
`mail_ctact` VARCHAR( 40 ) NOT NULL ,
`d_rappel` DATE DEFAULT '0000-00-00' NOT NULL ,
`h_rappel` TIME NOT NULL ,
`ca_adequat` FLOAT NOT NULL ,
`cout_rcom` FLOAT NOT NULL ,
`raissoc` VARCHAR( 50 ) NOT NULL ,
`fax` VARCHAR( 20 ) NOT NULL ,
`adr` VARCHAR( 100 ) NOT NULL ,
`cp` VARCHAR( 10 ) NOT NULL ,
`ville` VARCHAR( 40 ) NOT NULL ,
`id_apporteur` INT( 3 ) NOT NULL ,
`id_commercial` INT( 3 ) NOT NULL ,
`date_rel_adequat` DATE DEFAULT '0000-00-00' NOT NULL ,
`h_rel_adequat` TIME NOT NULL ,
`date_rel_rcom` DATE DEFAULT '0000-00-00' NOT NULL ,
`h_rel_rcom` TIME NOT NULL ,
`comment_adequat` TEXT NOT NULL ,
`comment_rcom` TEXT NOT NULL ,
`date_info_rcom` DATE DEFAULT '0000-00-00' NOT NULL ,
`propale_rcom` INT( 1 ) NOT NULL ,
`bdc_adequat` INT( 1 ) NOT NULL ,
`date_decision` VARCHAR( 50 ) NOT NULL ,
`etat_dossier` VARCHAR( 10 ) NOT NULL ,
`id_rcom` INT( 2 ) NOT NULL ,
`xxx` VARCHAR( 2 ) NOT NULL ,
`zzz` VARCHAR( 2 ) NOT NULL ,
PRIMARY KEY ( `id_pros` ) ,
INDEX ( `resultat` )
)
MErci encore[hello] | | | | | koala01 | Posté le 21/07/2005 à 12:32 | Astucien
4715 Messages
| Pour cela, il ne faut pas t'en faitre...
La très grosse chaque type a sa propre taille définie, et, pour ce qui est des types "texte" l'espace utilisé lors de l'insertion est pour la très grosse majorité (il n'y a que le type char qui fasse exception) est toujours fonction de la valeur que tu veux introduire dans le champs.
Les seuls types de champs pour lesquels tu doive indiquer une taille maximale, ce sont les types char et varchar (avec un maximum de 255 caractères, selon mes souvenirs)
Comme, en plus, les champs sont remplis sur base d'un formulaire, il est de loin préférable de limiter la saisie auprès du visiteur dans le formulaire, (avec l'attribut maxlngth) et de laisser les tailles par défaut dans les tables. | | | | | Nick Ar Gall | Posté le 21/07/2005 à 14:18 | Petit astucien
18 Messages
| Ok d'acc il me reste plus qu'a faire le site qui tourne autour de la base :)
Merci de ton avis et tes infos
KEnavo | | | |
| | Haut de la page |
| | Inscrivez-vous ! |
- Posez vos questions
- Résolvez vos problèmes
- Aidez les autres
- Participez et créez vos discussions
- Dialoguez en privé avec d'autres membres
- Suivez vos sujets préférés
- Affichez les signatures des membres
|
|