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

Oracle Discussion :

[9.02 / Power Amc]


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 137
    Points : 80
    Points
    80
    Par défaut [9.02 / Power Amc]
    slt tout le monde,


    a laide de power amc j'ai génére un MPD sous format oracle 9i.
    ensuite je genere le code sql, et pour de mes table je trouve cela

    /*==============================================================*/
    /* Table : MOUVEMENT */
    /*==============================================================*/
    create table MOUVEMENT (
    CODE_AGENCE INTEGER not null,
    NUM_UNIT_VEHICULE INTEGER not null,
    CODE_POSITION_MVT CHAR(20) not null,
    KMS_DEPART_MVT NUMBER(8) not null,
    KMS_ARRIVEE_MVT NUMBER(8) not null,
    DATE_DEPART_MVT DATE not null,
    DATE_ARRIVEE_MVT DATE not null,
    DATE_CREATION_MVT DATE,
    DATE_MODIFICATION_MVT DATE,
    SOURCE_MVT CHAR(20)
    );

    alter table MOUVEMENT
    add constraint PK_MOUVEMENT primary key (CODE_AGENCE, NUM_UNIT_VEHICULE);

    alter table MOUVEMENT
    add constraint AK_NUM_UNIT_VEHICULE_MOUVEMEN unique (CODE_AGENCE, NUM_UNIT_VEHICULE);
    Que veut dire le AK? Clé alternative? a quoi cela sert?
    car ensuite g copier le script généré dans pl/sql pour creer une BDD sous oracle et une erreur me dit :

    add constraint PK_MOUVEMENT primary key (CODE_AGENCE, NUM_UNIT_VEHICULE)
    *
    add constraint AK_NUM_UNIT_VEHICULE_MOUVEMEN unique (CODE_AGENCE, NUM_UNIT_VEHICULE)
    *
    ERREUR à la ligne 2 :
    ORA-02261: une telle clé unique ou primaire existe déjà dans la table
    Dois je effacé cette ligne dan le script?

    Merci

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Est ce que tu n'a pas déja lancé ce script ?
    Parce que à mon avis les objets et contraintes existent déja

  3. #3
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    AK signifie Alternaive Key (clé étrangère).

    En fait, sur une table, on ne peut poser au plus qu'une PK (clé primaire).

    Or certaines tables possèdent parfois plus d'un clé primaire. Pour s'en sortir, on pose donc des AK.

    Normalement, si tu as fait un MCD sous Power AMC, clique sur ton entité et va dans l'onglet 'Identifiant'.

    Sinon, si tu as directement fait un MPD, clique sur ta table et va dans l'onglet 'Clés'.

    Pour info, une AK se traduit au niveau physique par une contrainte d'unicité sur tes champs, avec les champs en NOT NULL.

  4. #4
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 137
    Points : 80
    Points
    80
    Par défaut
    Est ce que tu n'a pas déja lancé ce script ?
    j'ai en effet déja lancer le scritp mais j'ai aussi lancé un drop cascade etc sur toute les contraintes , ca aurait donc les enlever nan?

    Merci pour les réponses

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Citation Envoyé par alpachico
    Est ce que tu n'a pas déja lancé ce script ?
    j'ai en effet déja lancer le scritp mais j'ai aussi lancé un drop cascade etc sur toute les contraintes , ca aurait donc les enlever nan?

    Merci pour les réponses
    SI
    Réponse de rouardg

  6. #6
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 137
    Points : 80
    Points
    80
    Par défaut
    Normalement, si tu as fait un MCD sous Power AMC, clique sur ton entité et va dans l'onglet 'Identifiant'.
    C'est bien ce que j'ai fait et j'ai en effet mes deux clé primaire avec seulement une clé coché a P. dois je la decocher? dois supprimer cette clé alternative de mon Script?

    car
    alter table MOUVEMENT
    add constraint PK_MOUVEMENT primary key (CODE_AGENCE, NUM_UNIT_VEHICULE);
    cela ne suffit il pas?

  7. #7
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    Non, tu ne décoches pas le P, car c'est ta clé primaire.

    Ensuite, comme ton AK porte sur ta PK, tu peux la supprimer.

    Va dans l'onglet identifiant de ton entité, et là tu dois avoir 2 identifiants.
    Conserve l'identifiant de ta PK (le P est coché), et supprime l'autre identifiant.

    Tu n'as plus qu'à regénérer ensuite ton MPD et ton script. Lorsque tu génères ton MPD, pas de pb si tu le régèneres entièrement. Par contre, si tu le génères en conservant les modifications, il me semble que PowerAMC va conserver un index unique sur tes champs. Supprime le pour faire plus propre.

  8. #8
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 137
    Points : 80
    Points
    80
    Par défaut
    merci ca marche nickel

  9. #9
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 566
    Points
    19 566
    Billets dans le blog
    25
    Par défaut
    Une alternative key, c'est pas vraiment une clé étrangère : c'est plutôt une clé primaire secondaire

  10. #10
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par fadace
    Une alternative key, c'est pas vraiment une clé étrangère : c'est plutôt une clé primaire secondaire
    Fadace a raison, je suis un peu fatigué. Milles excuses

    Une AK est bien est une clé primaire secondaire, encore appelée clé alternative (sous entendu alternative à la clé primaire).

  11. #11
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 137
    Points : 80
    Points
    80
    Par défaut
    alter table MOUVEMENT
    add constraint PK_MOUVEMENT primary key (CODE_AGENCE, NUM_UNIT_VEHICULE);
    Cettes syntaxe ne suffit donc pas a créer une clé primaire double? il faut rajouter une clé alternative?

    Merci

  12. #12
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    Si, c'est la syntaxe pour créer ta clé primaire sur les champs CODE_AGENCE et NUM_UNIT_VEHICULE.

    Maintenant, si tu veux rajouter une ou plusieurs autres clés alternatives sur d'autres champs de ta table, libre à toi.

  13. #13
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 137
    Points : 80
    Points
    80
    Par défaut
    ok , donc la clé alternative est utilisé au bout de la troisieme clé primaire à mettre dans une table si j'ai bien compris.
    Avec seulement deux clé primaire on na pas besoin d'utiliser une AK mai avec une troisieme si?

    Merci pour les réponses.

  14. #14
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    Hou là, je crois que tu n'as rien compris du tout !!!

    Bon, je prends un exemple autre : supposons que je doive gérer des personnes (table PERSONNE). Ces personnes ont des caractéristiques, comme un nom, un ou plusieurs prénoms, un âge, un n° de sécu, une adresse, un status marital, etc, etc...

    Je mets donc tous ces attributs (ces champs) dans une table.

    Ensuite, il faut bien avoir au moins un identifiant unique pour pouvoir identifier chaque personne.

    Il est évident qu'un numéro de sécurité sociale est un identiant unique, donc je décide de le mettre en PK.

    Ensuite, j'ai décidé qu'une personne était aussi identifié de manière unique par son nom, son 1er prénom et son adresse. Comme sur une table, on ne peut créer qu'une seule PK, la seule solution est donc de définir ces trois champs comme AK. C'est tout !!!

  15. #15
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 137
    Points : 80
    Points
    80
    Par défaut
    j'ai compris.

    Merci

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

Discussions similaires

  1. telecharger power amc:probleme
    Par imou8 dans le forum PowerAMC
    Réponses: 7
    Dernier message: 27/05/2007, 13h19
  2. Power AMC, génération script SQL
    Par davasm dans le forum PowerAMC
    Réponses: 1
    Dernier message: 24/05/2006, 17h18
  3. [power AMC] Quels est vraiment son utilité?
    Par alpachico dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 08/08/2005, 09h24
  4. Exportation des graphiques d'un modèle (Power AMC)
    Par boubaouz dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 16/04/2003, 16h59

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