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

PostgreSQL Discussion :

Droper une sequence.


Sujet :

PostgreSQL

  1. #1
    Membre éclairé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut Droper une sequence.
    Bonjour à tous,

    Voila, j'ai une table déclarée comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TABLE objet_commun
    (
      id_objet int4 NOT NULL DEFAULT nextval('public."objet_id_objet_seq"'::text),
    j'ai donc une sequence du meme non mais egalement une sequence objet_idObjet_seq qui était auparavant utilisé par le champs id_objet.
    J'ai donc changé dans pgadmin la sequence aloué a id_objet pour obtenir la table ci-dessus.
    Mon probleme est que lorsque je veux droper la sequence, il me l'interdit en me disant que le champs id_objet est attaché a cette séquence.

    ERROR: cannot drop sequence "objet_idObjet_seq" because table objet_commun column id_objet requires it
    HINT: You may drop table objet_commun column id_objet instead.
    J'avoue ne pas comprendre.

    Si quelqu'un devine d'ou ca viendrait.

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Par défaut
    Si tu fais un petit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE objet_commun ALTER COLUMN id_objet SET DEFAULT 0;
    et apres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DROP SEQUENCE objet_id_objet_seq;

  3. #3
    Membre éclairé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    En effet, cela devrait fonctionner.

    Mais ca ne fonctionne pas. Pourtant ma table est maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    CREATE TABLE objet_commun
    (
      id_objet int4 NOT NULL DEFAULT 0,
      id_antiquaire int4 NOT NULL,
      nb_photos int2 NOT NULL DEFAULT 0,
      prix float8,
      longueur float4,
      largeur float4,
      hauteur float4,
      profondeur float4,
      diametre float4,
      date_modif date NOT NULL,
      CONSTRAINT pk_objet_commun PRIMARY KEY (id_objet),
      CONSTRAINT fk_objetcommun1 FOREIGN KEY (id_antiquaire) REFERENCES antiquaire_client (id_antiquaire) ON UPDATE RESTRICT ON DELETE RESTRICT
    ) 
    WITHOUT OIDS;
    ALTER TABLE objet_commun OWNER TO postgres;
    GRANT ALL ON TABLE objet_commun TO postgres;
    GRANT ALL ON TABLE objet_commun TO public;

  4. #4
    Membre éclairé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    Le probleme est le suivant.

    Lorsque que j'affiche les infos du champs sous PGADMIN, il m'a gardé la séquence meme s'il ne l'utilise plus. Et c'est en grisé, donc je ne peux rien changé.

    J'ai bien essayé un alter column avec un drop sequence mais ce n'est pas la bonne syntaxe. je vais voir ca.

    merci

  5. #5
    Membre Expert
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Par défaut
    J'ai bien une solution barbare :
    tu recherche l'oid de objet_id_objet_seq
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT oid FROM pg_catalog.pg_class WHERE relname = 'objet_id_objet_seq'
    et tu delete le record dans pg_depend
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM pg_catalog.pg_depend WHERE objid = monoid
    Methode bien barbare et surtout assez délicate mais ca fonctionne, apres tu peux dropper.

  6. #6
    Membre éclairé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    Royal !!
    Ca a marché.
    Par contre, j'aimerais comprendre (et oui, je suis ...).

    Qu'est ce que ce catalogue ? Suite à la suppression, j'ai eu un message comme quoi deux lignes avaient été modifiées. Ce sont des lignes de ce catalogue ?

    VOus n'etes pas obligés de me répondre, je vais regarder par moi meme.

    Merci beaucoup

    Bonne journée

  7. #7
    Membre Expert
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Par défaut
    Bonjour,
    il n'y a pas de mal a demander, avant de connaitre, on ne connais pas !

    en fait pg_catalog est un schema systeme, ce schema contient les tables et autres fonctions utilisées par le moteur pg pour assurer le bon fonctionnement du systeme.
    On y retrouve dedans toutes les declarations des tables, des fonctions, des vues, ... et aussi des dépendances (pg_depend).
    Il doit y avoir un petit bug (ou un oubli) lorsque l'on met un default a autre chose que la sequence, normalement, si la sequence n'est plus utilisée, le systeme doit faire un petit tour dans pg_depend et deleter la relation.

  8. #8
    Membre éclairé
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Par défaut
    ok, c'est cool. ca aide a comprendre un minimum le fonctionnement.

    Je vais m'interesser a ca un petit peu, ca peut aider a sortir de certaines galères.

    Bonne journée

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

Discussions similaires

  1. [Fichier] Chercher et remplacer une sequence
    Par maximus001ma dans le forum Entrée/Sortie
    Réponses: 14
    Dernier message: 25/01/2006, 16h08
  2. [XSD] Elements de meme nom dans une sequence
    Par MathiasM dans le forum Valider
    Réponses: 2
    Dernier message: 14/04/2005, 09h33
  3. [PL/SQL] Recuperer le nouveau numero d'une sequence
    Par Tofalu dans le forum Oracle
    Réponses: 3
    Dernier message: 23/02/2005, 11h47
  4. [bioinfo] reverse complementaire d'une sequence
    Par perlgirl dans le forum Bioinformatique
    Réponses: 6
    Dernier message: 18/06/2004, 11h22
  5. peut-on savoir si un champ a une sequence??
    Par e11137 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/01/2004, 14h54

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