Oyé
voila j'utilise une base de donnée HSQL, et je crois que je dois faire un peu de la merde en fait.
J'ai déjà quelques données dans cette base, mais je dois actuellement modifier certaines tables afin de rajouter des champs.
Alors pour cela bah je vais connemment dans le fichier .script de ma base, et je rajoute à la main les colonnes dans la requête de création de la table. Mais problème, hé, c'est que comme je les insères au milieu d'autre, bah après mes colonnes sont décallé et, lorsque le fichier .script est executé, et que les anciennes données sont insérer, elles ne sont pas mise au bonne endroit ce qui a pour effet de bien tous faire couiller.
Comme je ne suis pas sur d'etre claire, j'ai par exemple ceci
CREATE TABLE1 (C1 ENTIER, C2 CHAR)
INSERT TABLE1 VALUES (1, A)
Je fais ma modification en insérant le colonne C3 entre C1 et C2.
CREATE TABLE1 (C1 ENTIER, C3 ENTIER, C2 CHAR)
INSERT TABLE1 VALUES (1, A)
Et là bah ca ne va plus puisque ca va insérer mon caractere A dans la colonne C3 (ce qui va de surcroit générer une erreur de format d'int).
Alors vous allez me dire, "mais qu'est ce quelle est l'intérêt d'inserer une colonne C3 entre 1 et 2 ? Il a qu'a la mettre à la fin et puis voila".
Bah aucun à priori, j'ai juste remarqué ceci car les colonnes que je veux insérer corespondent à des clé étrangères, et je voulais les ordonner un peu. Je suis d'accord que cela n'a pas vraiment d'importance, et que je peux tout à fait m'en passer. Mais je me dis que si un tel problème se pause, c'est que moi quelque part je fais mal les choses.
Donc, j'aurais voulu savoir :
- Est ce que ma façon de modifier la table est aussi ignoble que je le pense ? Je pensais bien à faire un alter table mais j'ai du me planter car cela ne passe pas comme je l'aurais voulu.
-Est il possible de spécifier à HSQL que lors des INSERT, il ne doit pas prendre en compte l'ordre des colonnes au moment de la création de la table, mais bien l'ordre des colonnes que j'ai utilisé au moment de ma requête ?
Voili voila ^^
Partager