OVH Cloud OVH Cloud

[MysSQL] problème de conversion HF avec SqlManagerX

4 réponses
Avatar
Romain PETIT
(en copie mail à Firefox...)

Bonjour,

j'ai eu des soucis avec un fichier que je n'arrivais pas à convertir en
table MySQL avec SqlManagerX :
J'ai résolu 3 problèmes :
- une rubrique HF date (sur 8) qui est vue par SqlManagerX comme un
type mySQL "date" mais qui ensuite est déclarée sans type dans le
CREATE TABLE (alors que les autres rubriques HF de type dateheure sont
converties en VARCHAR(14)).
- une rubrique HF ayant pour nom "INDEX" qui n'apparait plus dans le
CREATE TABLE...
- une rubrique ne doit pas être du même nom que le fichier (ce qui est
possible en HF : TEST.TEST)

Bugs MySqlManagerX (pour le 1er point), limitations de MySQL (pour les
2 points suivants) ?

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)

4 réponses

Avatar
Manu
> j'ai eu des soucis avec un fichier que je n'arrivais pas à convertir
en table MySQL avec SqlManagerX :
J'ai résolu 3 problèmes :
- une rubrique HF date (sur 8) qui est vue par SqlManagerX comme un
type mySQL "date" mais qui ensuite est déclarée sans type dans le
CREATE TABLE (alors que les autres rubriques HF de type dateheure sont
converties en VARCHAR(14)).



Il faut voir le fichier ini et la transformation désirée pour le type date.

- une rubrique HF ayant pour nom "INDEX" qui n'apparait plus dans le
CREATE TABLE...



Il faut voir le fichier des mots clé refusés index doit en faire partie
(index pour une rubrique c'est un peu chaud...)

- une rubrique ne doit pas être du même nom que le fichier (ce qui est
possible en HF : TEST.TEST)



La je ne vois pas de tete. je fais le tests ce soir et je te réponds.

Bugs MySqlManagerX (pour le 1er point), limitations de MySQL (pour les
2 points suivants) ?



Presque çà ;-)
Avatar
Romain PETIT
Manu vient de nous annoncer :

- une rubrique HF date (sur 8) qui est vue par SqlManagerX comme un
type mySQL "date" mais qui ensuite est déclarée sans type dans le
CREATE TABLE (alors que les autres rubriques HF de type dateheure sont
converties en VARCHAR(14)).





Il faut voir le fichier ini et la transformation désirée pour le type date.



Ok vu.
Je n'ai rien changé de la config par défaut, donc apparement si on
oublie de modifier le fichier ini, cela génère un problème avec les
types date et heure...

- une rubrique HF ayant pour nom "INDEX" qui n'apparait plus dans le
CREATE TABLE...





Il faut voir le fichier des mots clé refusés index doit en faire partie
(index pour une rubrique c'est un peu chaud...)



Oui, il fait effectivement partie des mots-clé interdits :
http://dev.mysql.com/doc/mysql/en/Reserved_words.html
TODO pour une prochaine version : une petite vérif et un message sur
les mots réservés :-)

- une rubrique ne doit pas être du même nom que le fichier (ce qui est
possible en HF : TEST.TEST)





La je ne vois pas de tete. je fais le tests ce soir et je te réponds.



Ok mais apparemment c'est possible, avec MySQL Administrator, le CREATE
s'effectue avec des quotes :
CREATE TABLE 'TEST'.'TEST'(
'TEST' INTEGER
);

A+


a+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Manu
>>> - une rubrique HF date (sur 8) qui est vue par SqlManagerX comme un
type mySQL "date" mais qui ensuite est déclarée sans type dans le
CREATE TABLE (alors que les autres rubriques HF de type dateheure
sont converties en VARCHAR(14)).





Il faut voir le fichier ini et la transformation désirée pour le
type date.



Ok vu.
Je n'ai rien changé de la config par défaut, donc apparement si on
oublie de modifier le fichier ini, cela génère un problème avec les
types date et heure...



J'ai déjà fait la remarque à Fred : il faut un ENORME encart qui dit :
"modifier le fichier .ini pour vos formats de date et heure!"

- une rubrique HF ayant pour nom "INDEX" qui n'apparait plus dans le
CREATE TABLE...





Il faut voir le fichier des mots clé refusés index doit en faire
partie (index pour une rubrique c'est un peu chaud...)





Oui, il fait effectivement partie des mots-clé interdits :
http://dev.mysql.com/doc/mysql/en/Reserved_words.html
TODO pour une prochaine version : une petite vérif et un message sur
les mots réservés :-)



Je parlais plutot du fichier .ini de SQLMX-Converter. Sinon, c'est vrai que
l'on peut ajouter une vérification dans une liste de mots clés liés à la
base de données selectionnée... A mettre dans nos TODO.

- une rubrique ne doit pas être du même nom que le fichier (ce qui
est possible en HF : TEST.TEST)





La je ne vois pas de tete. je fais le tests ce soir et je te réponds.



Ok mais apparemment c'est possible, avec MySQL Administrator, le
CREATE s'effectue avec des quotes :
CREATE TABLE 'TEST'.'TEST'(
'TEST' INTEGER
);



Je n'en doute pas, mais je dois faire le test avec le converter.
Avatar
Romain PETIT
Manu a exposé le 17/08/2004 :

Oui, il fait effectivement partie des mots-clé interdits :
http://dev.mysql.com/doc/mysql/en/Reserved_words.html





Je parlais plutot du fichier .ini de SQLMX-Converter. Sinon, c'est vrai que
l'on peut ajouter une vérification dans une liste de mots clés liés à la
base de données selectionnée... A mettre dans nos TODO.



Il n'était pas dans le fichier ini de SQLMX-Converter mais c'est un
mot-clé réservé...

CREATE TABLE TEST (IDTEST BIGINT NOT NULL ,INDEX CHAR(50) );
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 'CHAR(50) )' at line 1...

Par contre, la création de la table avec une column 'INDEX' est
acceptée sans problème avec des quotes....
CREATE TABLE 'TEST'.'TEST' ('INDEX' CHAR(1));

- une rubrique ne doit pas être du même nom que le fichier








[...]
Je n'en doute pas, mais je dois faire le test avec le converter.



Le converter créée avec la syntaxe suivante :

CREATE TABLE TEST (IDTEST BIGINT NOT NULL ,TEST CHAR(50) NOT NULL );
Table 'test' already exists...

La solution pour tous ces problèmes serait donc les quotes...

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)