Mysql

Fermé
mya1 Messages postés 334 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 28 janvier 2013 - 22 avril 2009 à 23:59
mya1 Messages postés 334 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 28 janvier 2013 - 23 avril 2009 à 00:40
Bonjour,
je suis en train de realiser mon projet de fin d'année, de ce fait je dois utiliser dans l'une des etapes un codage en php, donc je dois creer une base de données en utilisant le mysql pour y inserer les tables dont j'aurai besoin. et comme vous savez dans la creation des tables je dois choisir la clé primaire et puis si j'en aurai besoin une clé etrangère. donc j'ai bell et bien cherché une case à cocher pour la clé etrangère comme celle de la clé primaire mais sans resultat, j'étais donc obligée de faire la creation de 3 tables manuellement c a d ecrire les requetes, mais là quand je fais executer il me file un message d'erreur:

#1064 - Erreur de syntaxe pr�s de 'UNSIGNED NOT NULL,
`typeclient` char(20) NOT NULL,
`nom` v' � la ligne 2

voici le code que j'ai ecrit:



CREATE TABLE `client` (
`numero_client` varchar(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`type_client` varchar(20) NOT NULL,
`nom` varchar(40) NOT NULL,
`prenom` varchar(40) NOT NULL,
`email` varchar(60) NOT NULL,
`adresse` char(40) NOT NULL,
`age` int(30) NOT NULL,
`type_permis` char(2) NOT NULL,
`bonus_et_offres` float(60) NOT NULL,
PRIMARY KEY (`numero_client`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `reservation` (
`numero_reservation` int(80) UNSIGNED NOT NULL AUTO_INCREMENT,
`date_reservation` date NOT NULL,
`nombre_de_jour_de_reservation` varchar(255) NOT NULL,
`numero_client` varchar(20) UNSIGNED NOT NULL,
`numero_voiture` int(255) NOT NULL,
PRIMARY KEY (`numero_reservation`),
FOREIGN KEY (`numero_client`) REFERENCES `client` (`numero_client`) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `facturation` (
`numero_facture` int(100) UNSIGNED NOT NULL AUTO_INCREMENT,
`numero_client` varchar(80) NOT NULL,
`numero_reservation` int(255) NOT NULL,
`nombre_de_jour_de_location` int(255) NOT NULL,
`date_facturation` date NOT NULL,

PRIMARY KEY (`numero_facture`),
FOREIGN KEY (`numero_reservation`) REFERENCES `reservation` (`numero_reservation) ENGINE=InnoDB DEFAULT CHARSET=utf8;




j'espère bien que vous me repondiez le plus proche possible!

cordialement

5 réponses

hello

une colonne varchar peut-elle unsigned autoincrement ?
c'est pourtant ce que tu as fait pour numero_client dans client :D

et es-tu vraiment obligé d'encadrer tes noms de colonne ou de table avec des ` ?
0
mya1 Messages postés 334 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 28 janvier 2013 42
23 avril 2009 à 00:18
humm donc si je comprend bien c pas vrm très util que je la fasse ou pas!!! cest elle qui crée ce pb nan?
0
perso, c'est l'autoincrement que je trouve nul, mais c'est mon avis.

par contre c'est utile d'avoir une clé primaire dans une table... et il vaut mieux que ce soit numero_client plutot que nom+prenom+age+adresse

et ce qui crée le problème est : la chaine non signée !

bin oui, seuls les nombres sont signés, voyons
0
mya1 Messages postés 334 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 28 janvier 2013 42
23 avril 2009 à 00:35
okay je vois le truc!! tte façon pour la clé primaire g po vrm un soucis dans le choix!!!! là g pu resoudre le pb merci enormement à toi!! mais je vais profiter encore de tes connaissances la dessus et je vais te dire que lors de la correction du code (c a d en illiminant le truc dont tu viens de parler le unsiagned) yav d'autres erreurs qui se sont figurées!! :s

#1064 - Erreur de syntaxe pr�s de ')' � la ligne 12

[ Retour ]



CREATE TABLE `client` (
`numero_client` varchar(20) NOT NULL ,
`type_client` varchar(20) NOT NULL,
`nom` varchar(40) NOT NULL,
`prenom` varchar(40) NOT NULL,
`email` varchar(60) NOT NULL,
`adresse` char(40) NOT NULL,
`age` int(30) NOT NULL,
`type_permis` char(2) NOT NULL,
`bonus_et_offres` int(60) NOT NULL,
PRIMARY KEY (`numero_client`),
) ;

CREATE TABLE `reservation` (
`numero_reservation` int(80) NOT NULL,
`date_reservation` date NOT NULL,
`nombre_de_jour_de_reservation` varchar(255) NOT NULL,
`numero_client` varchar(20) UNSIGNED NOT NULL,
`numero_voiture` int(255) NOT NULL,
PRIMARY KEY (`numero_reservation`),
FOREIGN KEY (`numero_client`) REFERENCES `client` (`numero_client`);

CREATE TABLE `facturation` (
`numero_facture` int(100) NOT NULL,
`numero_client` varchar(80) NOT NULL,
`numero_reservation` int(255) NOT NULL,
`nombre_de_jour_de_location` int(255) NOT NULL,
`date_facturation` date NOT NULL,

PRIMARY KEY (`numero_facture`),
FOREIGN KEY (`numero_reservation`) REFERENCES `reservation` (`numero_reservation);
0

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

Posez votre question
mya1 Messages postés 334 Date d'inscription samedi 5 juillet 2008 Statut Membre Dernière intervention 28 janvier 2013 42
23 avril 2009 à 00:40
ok ok c bon!! g pu detecter l'erreur!! mercii bcp pebcak!! c vrm très gentil de ta part!!
0