Création d'une table avec MySQL
Résolu
AWare
-
le père -
le père -
Bonsoir,
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 mon erreur , pouvez vous m'eclaircir?
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 mon erreur , pouvez vous m'eclaircir?
A voir également:
- Création d'une table avec MySQL
- Table ascii - Guide
- Table des matières word - Guide
- Creation compte gmail - Guide
- Création site web - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
9 réponses
PRIMARY KEY (`ea_profile_id`,
KEY `ea_appname`,
KEY `ea_group` )
c'est plutot
PRIMARY KEY('ea_profile_id','ea_appname','ea_group')
KEY `ea_appname`,
KEY `ea_group` )
c'est plutot
PRIMARY KEY('ea_profile_id','ea_appname','ea_group')
Merci pour ta réponse,
j'ai donc rajouter le " ; " et lors de la compilation j'ai reçu le même message d'erreur que précedemment.
j'ai donc rajouter le " ; " et lors de la compilation j'ai reçu le même message d'erreur que précedemment.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour mickaelm30 ,
voici la requête que j'ai donc écrite :
et voici le message d'erreur qui s'affiche maintenant:
Que faire?
voici la requête que j'ai donc écrite :
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 ;
et voici le message d'erreur qui s'affiche maintenant:
#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
Que faire?
Que faire?
1 - ne pas poster en double, tu as déjà la même question sur le forum programmation
2 - ne pas fournir de fausses informations, la requête que tu donnes dans le message 5 ne peut en AUCUN CAS conduire au message d'erreur que tu indiques
1 - ne pas poster en double, tu as déjà la même question sur le forum programmation
2 - ne pas fournir de fausses informations, la requête que tu donnes dans le message 5 ne peut en AUCUN CAS conduire au message d'erreur que tu indiques
Si le père le dit, c'est que c'est vrai ^^ ! J'ai confiance en notre père! Mouahaha je craque faut que j'arrête de coder je fais des blagues de merde...
Vous savez comment on fait la guerre en algorithme? ...
Non?...
Avec des Tant Que.........(tank) ...XD
Non plus sérieusement, je vois pas du tout d'où viens ton problème et le père a surement raison d'après ce que j'ai pu voir jusque là il s'y connait plutôt bien. Même très bien =) !
Bref, j'vais me chercher un café moi pour me calmer.
Bonne continuation.
Vous savez comment on fait la guerre en algorithme? ...
Non?...
Avec des Tant Que.........(tank) ...XD
Non plus sérieusement, je vois pas du tout d'où viens ton problème et le père a surement raison d'après ce que j'ai pu voir jusque là il s'y connait plutôt bien. Même très bien =) !
Bref, j'vais me chercher un café moi pour me calmer.
Bonne continuation.
j'ai trouvé ça sur ce site:
http://tecfa.unige.ch/guides/mysql/fr-man/manuel_CREATE_TABLE.html
Avec MySQL, l'attribut PRIMARY KEY est identique à l'attribut KEY qui porterait le nom de PRIMARY Une table ne peut avoir qu'une seule colonne avec l'attribut table PRIMARY KEY. Si aucune colonne n'a de PRIMARY KEY et qu'une application requiert la colonne de PRIMARY KEY, MySQL retournera la première colonne ayant l'attribut UNIQUE.
http://tecfa.unige.ch/guides/mysql/fr-man/manuel_CREATE_TABLE.html
Avec MySQL, l'attribut PRIMARY KEY est identique à l'attribut KEY qui porterait le nom de PRIMARY Une table ne peut avoir qu'une seule colonne avec l'attribut table PRIMARY KEY. Si aucune colonne n'a de PRIMARY KEY et qu'une application requiert la colonne de PRIMARY KEY, MySQL retournera la première colonne ayant l'attribut UNIQUE.
Il ne peut pas y avoir plusieurs colonnes ayant chacune individuellement l'attribut PRIMARY KEY, mais l'attribut PRIMARY KEY peut être multicolonnes ! C'est à dire que PRIMARY KEY('ea_profile_id','ea_appname','ea_group') est parfaitement légal.
Je lis la doc dont tu donnes le lien. En début de page, dans la syntaxe de CREATE, on lit ... PRIMARY KEY (index_Nom_col,...) ... et plus loin
De plus, j'ai essayé ...
http://www.commentcamarche.net/forum/affich 12706238 mysql create table#14
Je lis la doc dont tu donnes le lien. En début de page, dans la syntaxe de CREATE, on lit ... PRIMARY KEY (index_Nom_col,...) ... et plus loin
Une PRIMARY KEY peut être un index multi colonne
De plus, j'ai essayé ...
http://www.commentcamarche.net/forum/affich 12706238 mysql create table#14