Rechercher : dans
Par :

MySQL : create table

Dernière réponse le 3 jun 2009 à 22:36:49 MySQLcestlebien, le 2 jun 2009 à 17:48:20 
 Signaler ce message aux modérateurs

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?

Configuration: Linux
Firefox 3.0.10

1

brudao, le 2 jun 2009 à 18:07:43

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

Répondre à brudao

3

AWare, le 3 jun 2009 à 09:12:02

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?

Répondre à AWare

2

snake-d12, le 3 jun 2009 à 00:47:27

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

Répondre à snake-d12

9

HostOfSeraphim, le 3 jun 2009 à 09:48:12

Le problème est indépendant de sa méthode de connexion à la base, pourquoi lui faire changer d'outil ?

Configuration : Linux Debian Lenny / Noyau 2.6.26 / Gnome / ­Iceweasel 3
Connexion Internet : ADSL Orange 8M (Livebox)

Répondre à HostOfSeraphim

10

AWare, le 3 jun 2009 à 09:53:50

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 !

Répondre à AWare

4

AWare, le 3 jun 2009 à 09:22:28

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.

Répondre à AWare

5

Dr Zoidberg, le 3 jun 2009 à 09:30:34

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

Répondre à Dr Zoidberg

7

AWare, le 3 jun 2009 à 09:37:56

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

Répondre à AWare

6

le père, le 3 jun 2009 à 09:31:24

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

Répondre à le père

8

AWare, le 3 jun 2009 à 09:42:07
  • +1

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

Répondre à AWare

11

le père, le 3 jun 2009 à 09:56:58

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)

Répondre à le père

12

AWare, le 3 jun 2009 à 10:02:46

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!

Répondre à AWare

13

le père, le 3 jun 2009 à 10:16:43

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

Répondre à le père

14

 le père, le 3 jun 2009 à 22:36:49
  • +3

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 ; 

Répondre à le père