You have an error in your SQL syntax

Fermé
Livvie - 25 mai 2013 à 03:03
funnycat Messages postés 153 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 10 mars 2019 - 27 mai 2013 à 13:48
Salit à tous
j'ai essayé de generer ma base de donnée à partir du diagramme de classe mais toujours je rencontres des erreurs dont je sais pas pourquoi?
voila une de erreurs que j'ai rencontré
#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 ') )' at line 21
cette erreure apparait lors de la création d'une table produit voila son code sql
create table Produit
(
   idProduit            int,
   typeProduit          varchar(254),
   categorie            varchar(254),
   nom                  varchar(254),
   marque               varchar(254),
   reference            varchar(254),
   image                blob,
   description          text,
   taille               int,
   auteur               varchar(254),
   date_fab             datetime,
   dateExp              datetime,
   precaution           varchar(254),
   prix                 numeric(8,0),
   disponibilite        bool,
   primary key ()
);


quel est la signification du primary key()?
merci pour toute aide

1 réponse

funnycat Messages postés 153 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 10 mars 2019 65
27 mai 2013 à 13:48
Bonjour,
La primary key (alias la : clé primaire) correspond à une colonne où tous les enregistrement vont être unique. C'est en quelque sorte une référence unique pour chaque ligne. En l'occurrence dans votre cas, la clé primaire sera surement idProduit.
Votre code ressemblera donc surement à ceci :
CREATE TABLE Produit
(
   idProduit            int,
   typeProduit          varchar(254),
   categorie            varchar(254),
   nom                  varchar(254),
   marque               varchar(254),
   reference            varchar(254),
   image                blob,
   description          text,
   taille               int,
   auteur               varchar(254),
   date_fab             datetime,
   dateExp              datetime,
   precaution           varchar(254),
   prix                 numeric(8,0),
   disponibilite        bool,
   PRIMARY KEY (idProduit)
);


Une autre manière d'insérer la clé primaire consiste à insérer "PRIMARY KEY" sur la ligne même du champ concerné (voir un exemple sur cette fiche explicative : https://sql.sh/cours/create-table ).

Si je peux me permettre, voici une autre façon de créer votre table :

CREATE TABLE produit
(
   p_id                   INT PRIMARY KEY UNSIGNED NOT NULL,
   p_type                 VARCHAR(255),
   p_categorie            VARCHAR(255),
   p_nom                  VARCHAR(255),
   p_marque               VARCHAR(255),
   p_reference            VARCHAR(255),
   p_image                BLOB,
   p_description          TEXT,
   p_taille               INT,
   p_auteur               VARCHAR(255),
   p_date_fab             DATETIME,
   p_date_exp              DATETIME,
   p_precaution           VARCHAR(255),
   p_prix                 NUMERIC(8,0),
   p_disponibilite        BOOL
);


Petites astuces utilisées :
- Que des minuscules pour le nom des tables et des colonnes
- préfixe pour chaque nom de colonne (permet d'éviter les confusions si vous devez utiliser des jointures)
- Clé primaire non signée (il n'y aura jamais de valeur négative).

Cordialement,
0