Création d'une table avec MySQL

Résolu
AWare -  
 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?
Configuration: Linux
Firefox 3.0.10

9 réponses

  1. mickaelm30 Messages postés 229 Statut Membre 12
     
    PRIMARY KEY (`ea_profile_id`,
    KEY `ea_appname`,
    KEY `ea_group` )

    c'est plutot

    PRIMARY KEY('ea_profile_id','ea_appname','ea_group')
    1
  2. AWare
     
    Bonjour,

    je relance le sujet de mon problème, n'ayant toujours pas réussi à le résoudre.
    0
  3. VieTgOOx Messages postés 164 Statut Membre 26
     
    Je ne vois pas le ";" de fin de toute requête ?
    0
  4. AWare
     
    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.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. AWare
     
    Bonjour mickaelm30 ,

    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?
    0
  7. le père
     
    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
    0
  8. VieTgOOx Messages postés 164 Statut Membre 26
     
    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.
    0
  9. Alain_42 Messages postés 5413 Statut Membre 904
     
    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.
    0
  10. le père
     
    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
    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
    0