Posez votre question Signaler

MySQL : create table [Résolu]

MySQLcestlebien - Dernière réponse le 8 janv. 2010 à 10:56
Bonjour,
dans une base de donnée MySQL j'ai crée la table suivante:
CREATE TABLE IF NOT EXISTS `egw_emailadmin` (
`ea_profile_id` int(11) NOT NULL auto_increment,
`ea_smtp_server` varchar(80) default NULL,
`ea_smtp_type` int(11) default NULL,
`ea_smtp_port` int(11) default NULL,
`ea_smtp_auth` varchar(3) default NULL,
`ea_editforwardingaddress` varchar(3) default NULL,
`ea_smtp_ldap_server` varchar(80) default NULL,
`ea_smtp_ldap_basedn` varchar(200) default NULL,
`ea_smtp_ldap_admindn` varchar(200) default NULL,
`ea_smtp_ldap_adminpw` varchar(30) default NULL,
`ea_smtp_ldap_use_default` varchar(3) default NULL,
`ea_imap_server` varchar(80) default NULL,
`ea_imap_type` int(11) default NULL,
`ea_imap_port` int(11) default NULL,
`ea_imap_login_type` varchar(20) default NULL,
`ea_imap_tsl_auth` varchar(3) default NULL,
`ea_imap_tsl_encryption` varchar(3) default NULL,
`ea_imap_enable_cyrus` varchar(3) default NULL,
`ea_imap_admin_user` varchar(40) default NULL,
`ea_imap_admin_pw` varchar(40) default NULL,
`ea_imap_enable_sieve` varchar(3) default NULL,
`ea_imap_sieve_server` varchar(80) default NULL,
`ea_imap_sieve_port` int(11) default NULL,
`ea_description` varchar(200) default NULL,
`ea_default_domain` varchar(100) default NULL,
`ea_organisation_name` varchar(100) default NULL,
`ea_user_defined_accounts` varchar(3) default NULL,
`ea_imapoldcclient` varchar(3) default NULL,
`ea_order` int(11) default NULL,
`ea_appname` varchar(80) default NULL,
`ea_group` varchar(80) default NULL,
`ea_smtp_auth_username` varchar(80) default NULL,
`ea_smtp_auth_password` varchar(80) default NULL,
PRIMARY KEY (`ea_profile_id`,
KEY `ea_appname`,
KEY `ea_group` )
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2)
Voici le resultat:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'KEY `ea_appname`, KEY `ea_group` ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AU' at line 36
Je ne comprend pas l'erreur , pouvez vous m'eclaircir?
Lire la suite 

MySQL : create table »

15 réponses
Réponse
+3
moins plus
J'ai essayé les deux variantes et elles marchent très bien
À toi de voir laquelle correspond à tes besoins
CREATE TABLE IF NOT EXISTS `egw_emailadmin` (
`ea_profile_id` int(11) NOT NULL auto_increment,
`ea_smtp_server` varchar(80) default NULL,
`ea_smtp_type` int(11) default NULL,
`ea_smtp_port` int(11) default NULL,
`ea_smtp_auth` varchar(3) default NULL,
`ea_editforwardingaddress` varchar(3) default NULL,
`ea_smtp_ldap_server` varchar(80) default NULL,
`ea_smtp_ldap_basedn` varchar(200) default NULL,
`ea_smtp_ldap_admindn` varchar(200) default NULL,
`ea_smtp_ldap_adminpw` varchar(30) default NULL,
`ea_smtp_ldap_use_default` varchar(3) default NULL,
`ea_imap_server` varchar(80) default NULL,
`ea_imap_type` int(11) default NULL,
`ea_imap_port` int(11) default NULL,
`ea_imap_login_type` varchar(20) default NULL,
`ea_imap_tsl_auth` varchar(3) default NULL,
`ea_imap_tsl_encryption` varchar(3) default NULL,
`ea_imap_enable_cyrus` varchar(3) default NULL,
`ea_imap_admin_user` varchar(40) default NULL,
`ea_imap_admin_pw` varchar(40) default NULL,
`ea_imap_enable_sieve` varchar(3) default NULL,
`ea_imap_sieve_server` varchar(80) default NULL,
`ea_imap_sieve_port` int(11) default NULL,
`ea_description` varchar(200) default NULL,
`ea_default_domain` varchar(100) default NULL,
`ea_organisation_name` varchar(100) default NULL,
`ea_user_defined_accounts` varchar(3) default NULL,
`ea_imapoldcclient` varchar(3) default NULL,
`ea_order` int(11) default NULL,
`ea_appname` varchar(80) default NULL,
`ea_group` varchar(80) default NULL,
`ea_smtp_auth_username` varchar(80) default NULL,
`ea_smtp_auth_password` varchar(80) default NULL,
PRIMARY KEY (`ea_profile_id`),
KEY (`ea_appname`, `ea_group` )
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; 
et
 CREATE TABLE IF NOT EXISTS `egw_emailadmin` (
`ea_profile_id` int(11) NOT NULL auto_increment,
`ea_smtp_server` varchar(80) default NULL,
`ea_smtp_type` int(11) default NULL,
`ea_smtp_port` int(11) default NULL,
`ea_smtp_auth` varchar(3) default NULL,
`ea_editforwardingaddress` varchar(3) default NULL,
`ea_smtp_ldap_server` varchar(80) default NULL,
`ea_smtp_ldap_basedn` varchar(200) default NULL,
`ea_smtp_ldap_admindn` varchar(200) default NULL,
`ea_smtp_ldap_adminpw` varchar(30) default NULL,
`ea_smtp_ldap_use_default` varchar(3) default NULL,
`ea_imap_server` varchar(80) default NULL,
`ea_imap_type` int(11) default NULL,
`ea_imap_port` int(11) default NULL,
`ea_imap_login_type` varchar(20) default NULL,
`ea_imap_tsl_auth` varchar(3) default NULL,
`ea_imap_tsl_encryption` varchar(3) default NULL,
`ea_imap_enable_cyrus` varchar(3) default NULL,
`ea_imap_admin_user` varchar(40) default NULL,
`ea_imap_admin_pw` varchar(40) default NULL,
`ea_imap_enable_sieve` varchar(3) default NULL,
`ea_imap_sieve_server` varchar(80) default NULL,
`ea_imap_sieve_port` int(11) default NULL,
`ea_description` varchar(200) default NULL,
`ea_default_domain` varchar(100) default NULL,
`ea_organisation_name` varchar(100) default NULL,
`ea_user_defined_accounts` varchar(3) default NULL,
`ea_imapoldcclient` varchar(3) default NULL,
`ea_order` int(11) default NULL,
`ea_appname` varchar(80) default NULL,
`ea_group` varchar(80) default NULL,
`ea_smtp_auth_username` varchar(80) default NULL,
`ea_smtp_auth_password` varchar(80) default NULL,
PRIMARY KEY (`ea_profile_id`,
`ea_appname`,
`ea_group` )
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; 
Ajouter un commentaire
Réponse
+1
moins plus
Merci à toi "le père", sous ton conseil j'ai donc écris:


CREATE TABLE IF NOT EXISTS `egw_emailadmin` (
`ea_profile_id` int(11) NOT NULL auto_increment,
`ea_smtp_server` varchar(80) default NULL,
`ea_smtp_type` int(11) default NULL,
`ea_smtp_port` int(11) default NULL,
`ea_smtp_auth` varchar(3) default NULL,
`ea_editforwardingaddress` varchar(3) default NULL,
`ea_smtp_ldap_server` varchar(80) default NULL,
`ea_smtp_ldap_basedn` varchar(200) default NULL,
`ea_smtp_ldap_admindn` varchar(200) default NULL,
`ea_smtp_ldap_adminpw` varchar(30) default NULL,
`ea_smtp_ldap_use_default` varchar(3) default NULL,
`ea_imap_server` varchar(80) default NULL,
`ea_imap_type` int(11) default NULL,
`ea_imap_port` int(11) default NULL,
`ea_imap_login_type` varchar(20) default NULL,
`ea_imap_tsl_auth` varchar(3) default NULL,
`ea_imap_tsl_encryption` varchar(3) default NULL,
`ea_imap_enable_cyrus` varchar(3) default NULL,
`ea_imap_admin_user` varchar(40) default NULL,
`ea_imap_admin_pw` varchar(40) default NULL,
`ea_imap_enable_sieve` varchar(3) default NULL,
`ea_imap_sieve_server` varchar(80) default NULL,
`ea_imap_sieve_port` int(11) default NULL,
`ea_description` varchar(200) default NULL,
`ea_default_domain` varchar(100) default NULL,
`ea_organisation_name` varchar(100) default NULL,
`ea_user_defined_accounts` varchar(3) default NULL,
`ea_imapoldcclient` varchar(3) default NULL,
`ea_order` int(11) default NULL,
`ea_appname` varchar(80) default NULL,
`ea_group` varchar(80) default NULL,
`ea_smtp_auth_username` varchar(80) default NULL,
`ea_smtp_auth_password` varchar(80) default NULL,
PRIMARY KEY (`ea_profile_id`,
KEY `ea_appname`,
KEY `ea_group` )
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;




voici le nouveau message d'erreur qui s'affiche:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'KEY `ea_appname`, KEY `ea_group` ) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO' at line 36
Ajouter un commentaire
Réponse
+0
moins plus
essaye ça au niveau de la partie primary key,
PRIMARY KEY (`ea_profile_id`,`ea_appname`, `ea_group` )

enleve tout simplement les key que tu mets
AWare - 3 juin 2009 à 09:12
Essaye ça au niveau de la partie primary key,
PRIMARY KEY (`ea_profile_id`,`ea_appname`, `ea_group` )

enleve tout simplement les key que tu mets




Merci pour ta réponse brudao, j'ai donc essayer ce que tu me propose , maintenant j'ai le message d'erreur suivant :

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2)' at line 36


Que faire?
Ajouter un commentaire
Réponse
+0
moins plus
je pense que vous travailler sous le mode console, c pourquoi je vous propose de travailler avec des assistant comme easyPhp, wampServer ou le mieux c "Toad for MySQL Freeware_4.1.0.220"
je vous rassure que c tré facile, performant et vous fera gagner du temps
HostOfSeraphim- 3 juin 2009 à 09:48
Le problème est indépendant de sa méthode de connexion à la base, pourquoi lui faire changer d'outil ?

AWare - 3 juin 2009 à 09:53
Effectivement,

Bon j'en suis toujours au même point, je crois que je vais laisser tomber et creer cette table en utilisant l'autre méthode de PhpMyAdmin , cela va me prendre beaucoup de temps...

Merci à tous !
Ajouter un commentaire
Réponse
+0
moins plus
Je pense que vous travailler sous le mode console, c pourquoi je vous propose de travailler avec des assistant comme easyPhp, wampServer ou le mieux c "Toad for MySQL Freeware_4.1.0.220"
je vous rassure que c tré facile, performant et vous fera gagner du temps


Bonjour Snake-d12 ,

Je ne travail pas en mode console bien que je sois sous un Linux. Je travaille sous APACHE , LAMPSERVER, avec phpMyAdmin .Je suis sous Ubuntu donc je ne peux pas travailler sous WAMPserver mais plutôt sous LAMPserver.

J'ai donc fais ce que brudao m'a conseillé et me voici cette fois avec ce message d'erreur:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2)' at line 36 .

merci pour vos réponses à tout les deux, je suis toujours à la recherche d'une solution.
Ajouter un commentaire
Réponse
+0
moins plus
Pour moi :
...
`ea_smtp_auth_password` varchar(80) default NULL)
PRIMARY KEY (`ea_profile_id`,`ea_appname`,`ea_group` )
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2
AWare - 3 juin 2009 à 09:37
Bonjoue Dr Zoidberg,

voici l'erreur qui s'affiche après avoir changé ma requête par ce que u me propose:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PRIMARY KEY (`ea_profile_id`,`ea_appname`,`ea_group` ) ENGINE=MyISAM DEFAULT CH' at line 35
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour

Tu ne fermes pas ta parenthèse au bon endroit :

ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2) à remplacer par

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2
Ajouter un commentaire
Réponse
+0
moins plus
tu as toujours un problème avec tes keys :
PRIMARY KEY (`ea_profile_id`) INDEX (`ea_appname`,`ea_group`)
ou
PRIMARY KEY (`ea_profile_id`,`ea_appname`,`ea_group`)

ça dépend de ce que tu cherches à faire

(KEY tout court est synonyme de INDEX)
Ajouter un commentaire
Réponse
+0
moins plus
Rebonjour,

avec
PRIMARY KEY (`ea_profile_id`) INDEX (`ea_appname`,`ea_group`) 


le message d'erreur est le suivant :

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INDEX (`ea_appname`,`ea_group`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_IN' at line 35.

et avec
PRIMARY KEY (`ea_profile_id`,`ea_appname`,`ea_group`) 
j'avais déja essayer , toujours un message d'erreur (voir post précedent).


En tout cas merci à tous pour votre aide , ne trouvant pas la réponse je vais laisser tomber et creer cette table en utilisant l'autre méthode de PhpMyAdmin ..Dommage!
Ajouter un commentaire
Réponse
+0
moins plus
PRIMARY KEY (`ea_profile_id`) INDEX (`ea_appname`,`ea_group`)
il faut une virgule
PRIMARY KEY (`ea_profile_id`), INDEX (`ea_appname`,`ea_group`)
Tu as le droit de lire le manuel mysql toi aussi

PRIMARY KEY (`ea_profile_id`,`ea_appname`,`ea_group`)
j'avais déja essayer , toujours un message d'erreur (voir post précedent).

Lequel ?? je ne vois pas dans tes messages quand tu as essayé ceci depuis que la parenthèse est remise au bon endroit
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour

je dois recreéer une table sql (que j'ai supprimé par erreur) sur mon espace perso chez Free
1/puis je recuperer la table ci dessus et la copier pour mon espace (si oui comment fait - on ?)

2/ ayant un autre compte chez Free j'ai pu créer et sauvegarder une autre table
puis je la reuperer et l'importer sur mon premier compte ?
(j'ai bien tenté de l'importer ci mais aucune table na été créee )

merci
Ajouter un commentaire
Ce document intitulé « MySQL : create table » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?