[MySQL] Create Table avec un tiret

Répondre
Patochewie
le 05/07/2006 à 18:09
Patochewie
J'ai une erreur sur des créations de tables, j'ai l'impression que ça vient du tiret qu'il y a sur le nom de certaines tables.Il me renvoie l'erreur suivante :
#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 '- 7470_GIOP_TR

et ma commande est la suivante:
CREATE TABLE IF NOT EXISTS Occ_BUITOU-7470_GIOP_TR(
Patochewie
le 05/07/2006 à 18:12
Patochewie
désolé j'ai posté au lieu de prévisualiser. Dons je voulais savoir si MySQL accepte les tirets dans les noms de table, ensuite je voulais qd même mettre mon code d'insertion au cas ou ça vienne de lui :)
$req_create_rejet='CREATE TABLE IF NOT EXISTS '.$tab_entete[$i][0].' ( URS VARCHAR (20), PADR VARCHAR (20),CONTROLE VARCHAR (200),DATE_PASSAGE DATE, APPLICATION VARCHAR (10), IDENTIFIANT VARCHAR (80), COMMENTAIRE VARCHAR (50), ETAT_TRAITEMENT VARCHAR (15), DATE_ETAT DATE, DATE_ARCHIVAGE DATE, LIGNE_REJET BLOB )';
$result = mysql_query($req_create_rejet) or die("<br>Création table ".$tab_entete[$i][0]." a échoué");
echo '<br>la table '.$tab_entete[$i][0].' a été créé';


Je dis ça parce qu'il me créé ma première table mais bloque sur la deuxième qui comprend un tiret, il rajoute d'ailleurs un espace après ce tiret, mais pourquoi est-il aussi méchant???
Merci beaucoup de votre attention et bonne soirée.
moogli
le 05/07/2006 à 18:22
moogli
salut,

tu pouvais pas nous filer aussi le nom de la table ? :)

il semble que le - soit réservé / inutilisable pour les nom de table / champ si tu ne les protèges pas !

utilise des backquotes pour cela
exemple qui ne fonctionne pas

mysql> create table essai-1 ( id int auto_increment, truc varchar(12) NOT NULL, PRIMARY KEY (`id`));
ERROR 1064 (42000): 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 '-1 ( id int auto_increment, truc varchar(12) NOT NULL, PRIMARY KEY (`id`))' at line 1


exemple qui fonctionne

mysql> create table `essai-1` ( id int auto_increment, truc varchar(12) NOT NULL, PRIMARY KEY (`id`));
Query OK, 0 rows affected (0.01 sec)


smiley
Il en faut peu pour être heureux !!!!!
Patochewie
le 07/07/2006 à 12:16
Patochewie
Merci de cette réponse.
C'est niquel, je vais enlever mon changement de caractère, ce sera plus simple pour mes requetes futures.
Encore merci.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours