IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

Ordre de création de champs


Sujet :

SQL Firebird

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 944
    Points : 123
    Points
    123
    Par défaut Ordre de création de champs
    Bonjour à tous,

    je ne sais si il ya un moyen de redéfinir la position d'un champs dans une table?. je voudrais avoir la possibilité à chaque creation d'un nouveau champs de qu'il soit placer une position dans la définition de la table,
    exple, j'ai la table ESSAI :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create table essai
    champ1 integer not null,
    champ2 integer,
    primary key( (champ1));
    et si j'ajoute un champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table essai add champ3 integer
    il est placé en dernier, mais je voudrais par exple le placer en 2eme position exple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create table essai
    champ1 integer not null,
    champ3 integer,
    champ2 integer,
    primary key( (champ1));

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 245
    Points : 534
    Points
    534
    Par défaut
    Bonjour,

    Tout est décrit dans le document http://firebirdsql.org/file/document...reference.html dont il existe une version pdf qu'il est bien utile d'avoir à portée de main (ou de souris).

    André

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 944
    Points : 123
    Points
    123
    Par défaut
    Bonjour,
    merci pour le lien, mais , il ya pas ce que je cherche

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 739
    Points : 52 451
    Points
    52 451
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par chekkal Voir le message
    Bonjour à tous,

    je ne sais si il ya un moyen de redéfinir la position d'un champs dans une table?. je voudrais avoir la possibilité à chaque creation d'un nouveau champs de qu'il soit placer une position dans la définition de la table,
    exple, j'ai la table ESSAI :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create table essai
    champ1 integer not null,
    champ2 integer,
    primary key( (champ1));
    et si j'ajoute un champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table essai add champ3 integer
    il est placé en dernier, mais je voudrais par exple le placer en 2eme position exple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create table essai
    champ1 integer not null,
    champ3 integer,
    champ2 integer,
    primary key( (champ1));

    À lire :
    https://sqlpro.developpez.com/cours/sqlaz/erreurs/#L6

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 944
    Points : 123
    Points
    123
    Par défaut
    Désolé,
    ça répond toujours pas à ma question.

    Pour la solution de la table temporaire, c'est pas évident!, puisque l'opération de surpression de champs et de création de champs peut se faire plusieurs fois dans l'application.

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Prenons le problème autrement :

    Qu'espérez-vous gagner en maîtrisant l'ordre des colonnes dans le script CREATE TABLE ?

    Par ailleurs, certains SGBD stockent physiquement les colonnes dans le tablespace dans un ordre différent de celui de l'ordre CREATE TABLE pour mettre toutes les colonnes de type varchar à la fin.
    Le bénéfice est de limiter les déplacements des autres colonnes en cas de changement de longueur.

    Donc l'ordre décrit dans le create table est fictif...

    Enfin, les champs sont les zones d'un état ou d'un formulaire, dans une table, il y a des colonnes, pas des champs

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 245
    Points : 534
    Points
    534
    Par défaut
    Citation Envoyé par chekkal Voir le message
    Bonjour,
    merci pour le lien, mais , il ya pas ce que je cherche
    Je veux bien croire que le document n'est pas facile à lire, mais je n'ai pas l'impression que vous ayez beaucoup cherché
    Paragraphe 5.4.2 ALTER TABLE car votre problème ne concerne pas la création où l'ordre des champs est défini par l'ordre de création.
    Après votre ALTER TABLE tablename ADD <col_def>
    exécutez
    ALTER TABLE tablename ALTER COLUMN colname POSITION newposition

    André

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 944
    Points : 123
    Points
    123
    Par défaut
    merci alanglet, ça marche à merveille . pour être toute à fait honnête, j'ai commencé à lire le début mais tellement que c'est urgent alors j'ai cherché. ailleurs.

    C'est vrai que ma requête est un peu bizarre , mais c'est pour la bonne cause. En fait, j'ai une application de paie, avec une base de données qui change de forme et de table constamment en relation avec les employés et leurs situations, ainsi pour chaque employé avec ses indemnités qui sont propres à lui et peuvent ne pas être conforme avec d'autres employés et c'est pour ça que j'ai besoins de modifier constamment les tables des bases de données.

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 575
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonjour,

    Je ne suis pas un pro des bases de données, mais je pense que tu as un gros gros problème de conception.

    ONTAYG

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 944
    Points : 123
    Points
    123
    Par défaut
    NON pas du tout.

    Comme je l'ai expliqué, j'ai besoin constamment de créer des champs et dans mon application leurs positions sont d'une importance capitale.

  11. #11
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par chekkal Voir le message
    NON pas du tout.

    Comme je l'ai expliqué, j'ai besoin constamment de créer des champs et dans mon application leurs positions sont d'une importance capitale.
    Mais POURQUOI est-ce que cet ordre a-t-il de l'importance ? expliquez le besoin !
    Que faites vous de cet ordre, comment l'utilisez vous, pour quoi en faire ?...

  12. #12
    Membre éprouvé
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 575
    Points : 1 060
    Points
    1 060
    Par défaut
    Citation Envoyé par chekkal Voir le message
    NON pas du tout.

    Comme je l'ai expliqué, j'ai besoin constamment de créer des champs et dans mon application leurs positions sont d'une importance capitale.
    Justement, c'est un gros problème de conception, une base doit évoluer en nombre d'enregistrements et non en nombre de champs.

    A priori, c'est quelque chose de récurrent, donc un problème de conception.

    ONTAYG

  13. #13
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 944
    Points : 123
    Points
    123
    Par défaut
    Non aucun probléme de conception.

    Dans mon application les valeurs des champs sont calculées par rapport à leur position dans la table.

    exple champ1=14225; champ2=(champ1*x) /y;champ3=(champ1+champ2)*z et ainsi de suite.

  14. #14
    Membre éprouvé
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 575
    Points : 1 060
    Points
    1 060
    Par défaut
    Re

    C'est aux requêtes de faire les calculs pas dans des champs de table, donc très très mal conçu.

    ONTAYG

  15. #15
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 401
    Points : 294
    Points
    294
    Par défaut
    Bonjour .
    je pense que c'est bien possible de changer la position des champs comme suit :

    alter table Matable1 alter MaColonne position 7

    lien :
    https://firebirdsql.org/refdocs/lang...ter-table.html

  16. #16
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 739
    Points : 52 451
    Points
    52 451
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par chekkal Voir le message
    Non aucun probléme de conception.

    Dans mon application les valeurs des champs sont calculées par rapport à leur position dans la table.

    exple champ1=14225; champ2=(champ1*x) /y;champ3=(champ1+champ2)*z et ainsi de suite.
    Donc aucun intérêt !

    Une table n'est pas une feuille de calcul d'un tableur !!!

    D'autre part des valeurs calculées n'ont pas a figurer dans une table car c'est de la redondance.

    Pour cela il faut utiliser une vue !


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  17. #17
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 088
    Points : 38 393
    Points
    38 393
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Donc aucun intérêt !

    Une table n'est pas une feuille de calcul d'un tableur !!!

    D'autre part des valeurs calculées n'ont pas a figurer dans une table car c'est de la redondance.

    Pour cela il faut utiliser une vue !


    A +
    Tout à fait et plus encore, ce faisant, vous dérogez aux règles de Codd qui stipulent qu'il faut garantir l'indépendance des données et des traitements.
    Bref c'est un véritable usine à gaz que rien ne justifie.
    Et pour rappel, il n'y a pas de champs dans une base de données : il y a des colonnes

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création de champs calculé en runtime.
    Par Andry dans le forum Bases de données
    Réponses: 9
    Dernier message: 13/08/2005, 01h04
  2. Réponses: 5
    Dernier message: 08/03/2005, 14h22
  3. Création de champs
    Par stailer dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/02/2005, 18h14
  4. Ordre de création de composant
    Par bobby-b dans le forum Composants VCL
    Réponses: 4
    Dernier message: 15/09/2003, 20h05
  5. Ordonner ds l'ordre croissant de 2 champs confondus
    Par Coolbens dans le forum Langage SQL
    Réponses: 11
    Dernier message: 17/06/2003, 17h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo