MySQL : create table

Résolu/Fermé
MySQLcestlebien - 2 juin 2009 à 17:48
steph240 Messages postés 15 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 3 novembre 2011 - 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?

11 réponses

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 ; 
3
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
1
brudao Messages postés 524 Date d'inscription samedi 10 février 2007 Statut Membre Dernière intervention 16 octobre 2014 14
2 juin 2009 à 18:07
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
0
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?
0
snake-d12 Messages postés 218 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 25 septembre 2009 57
3 juin 2009 à 00:47
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
0
HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 608
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 ?

0
AWare > HostOfSeraphim Messages postés 6750 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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.
0
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
3 juin 2009 à 09:30
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
0
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
0
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
0
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)
0
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!
0
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
0
steph240 Messages postés 15 Date d'inscription mercredi 9 juillet 2008 Statut Membre Dernière intervention 3 novembre 2011
8 janv. 2010 à 10:56
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
0