Synthaxe SQL : Erreur dans script *.sql ?

Résolu
Goahould_nt Messages postés 21 Date d'inscription vendredi 21 avril 2023 Statut Membre Dernière intervention 27 janvier 2024 - Modifié le 16 mai 2023 à 12:49
Goahould_nt Messages postés 21 Date d'inscription vendredi 21 avril 2023 Statut Membre Dernière intervention 27 janvier 2024 - 16 mai 2023 à 21:11

J'ai le script suivant dans un fichier *.sql:

CREATE DATABASE xlogin;
USE xlogin;

CREATE TABLE `xloginInfo` (
  `username` varchar(30) NOT NULL,
  `password` varchar(30) NOT NULL,
  `name` varchar(40) NOT NULL,
  PRIMARY KEY (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;


INSERT INTO `xloginInfo` VALUES ('tom','yam','Nicolas Smith'),('jmonacho','1password','Jo Monachon');

CREATE TABLE `xArticle` (
  `id` int NOT NULL AUTO_INCREMENT,
  `nomArticle` varchar(50) NOT NULL,
  `description` text(65000) NOT NULL,
  `prix` varchar(15) NOT NULL,
  `specAnnee` varchar(4) NOT NULL,
  `specCylindree` varchar(10) NOT NULL,
  `specModele` varchar(20) NOT NULL,
  `image` varchar(25) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `xArticle` VALUES ('0','Jaguar E-type','Ce modele E-type le plus recherche de la serie en raison de la magnifique forme de la carrosserie, de la ligne de toit et des details comme les phares couverts et les magnifiques feux arriere.','204500 Euro','1963','3.8 litres','FHC serie 1','jaguareTypeE.jpg'),('1','Chevrolet Corvette','La Corvette C3 a été inspirée de la Mako Shark II conçue par Larry Shinoda.','26000 Euro','1980','3.8 litres','C3 5.0 small Block V8','chevroletCorvetteC3.jpg'), ('2','Posrsche 911','Techniquement, la 996 marque l'apparition d'un moteur entièrement refroidi par eau.','31000 Euro','1999','3.4 litres','996 Carrera coupé','porsche911Carrera.jpg'); 

la ligne

INSERT INTO `xArticle` VALUES... 

ne fonctionne pas si j'ajoute la 3e valeurs

('2','Posrsche 911','Techniquement, la 996 marque l'apparition d'un moteur entièrement refroidi par eau.','31000 Euro','1999','3.4 litres','996 Carrera coupé','porsche911Carrera.jpg') 

à la table xAricle. Est-ce que quelqu'un saurait quelle erreur de syntaxe SQL je commets ?  

4 réponses

jordane45 Messages postés 38134 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 344
16 mai 2023 à 09:56

Bonjour

Si tu écris du texte avec des apostrophes il faut les back quotter. l\'apparition


0
Goahould_nt
16 mai 2023 à 12:28

Merci beaucoup pour ta réponse, maintenant ma bdd fonctionne... enfin j’ encore un pb l’affichage dans la jsp des caractères accentués ! Ma bdd est en uft8 et ma jsp aussi, pourtant ces caractères s’affichent avec des symboles. J’ ai Cherché sur internet, mais j’ai pas trouvé ! Saurais-tu ce qu’il faut faire ?

0
Goahould_nt Messages postés 21 Date d'inscription vendredi 21 avril 2023 Statut Membre Dernière intervention 27 janvier 2024
Modifié le 16 mai 2023 à 23:33

En fait le \' devant l'apostrophe ne fonctionne pas, ma bdd n'enregistre pas le 3e élément dans la table xarticle. J'ai pourtant modifié le code comme cela :

CREATE TABLE `xArticle` (
  `id` int NOT NULL AUTO_INCREMENT,
  `nomArticle` varchar(50) NOT NULL,
  `description` text(65000) NOT NULL,
  `prix` varchar(15) NOT NULL,
  `specAnnee` varchar(4) NOT NULL,
  `specCylindree` varchar(25) NOT NULL,
  `specModele` varchar(100) NOT NULL,
  `image` varchar(80) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

INSERT INTO `xArticle` VALUES ('0','Jaguar E-type','Ce modele E-type le plus recherche de la serie en raison de la magnifique forme de la carrosserie, de la ligne de toit et des details comme les phares couverts et les magnifiques feux arriere.','204500 Euro','1963','3.8 litres','FHC serie 1','jaguarTypeE.jpg'),('1','Chevrolet Corvette','La Corvette C3 a été inspirée de la Mako Shark II conçue par Larry Shinoda.','26000 Euro','1980','3.8 litres','C3 5.0 small Block V8','chevroletCorvetteC3.jpg')('2','Posrsche 911','Techniquement, la 996 marque l\'apparition d\'un moteur entierement refroidi par eau.','31000 Euro','1999','3.4 litres','996 Carrera coupé','porsche911Carrera.jpg'); 

et mysql server me retourne une erreur 1064 (42000) : you have an error in your SQL  syntax; check the manuel ... lorsque je load mon *.sql.

Je ne comptends vraiment pas ? Quelqu'un saurait ce qu'il faut faire ? 

0
Goahould_nt Messages postés 21 Date d'inscription vendredi 21 avril 2023 Statut Membre Dernière intervention 27 janvier 2024
16 mai 2023 à 21:11

Non c'est bon, j'avais oublié une virgule. Pardon et merci encore...

0
Rejoignez-nous