Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2005, 13h01   #1
Membre habitué
 
Avatar de Tchinkatchuk
 
Homme Sylvain Gourvil
Freelance en développement Web
Inscription : mars 2005
Messages : 248
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Gourvil
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Freelance en développement Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2005
Messages : 248
Points : 141
Points : 141
Par défaut Droper une sequence.

Bonjour à tous,

Voila, j'ai une table déclarée comme suit :
Code :
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.

Citation:
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.
Tchinkatchuk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2005, 13h18   #2
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
Si tu fais un petit :
Code :
ALTER TABLE objet_commun ALTER COLUMN id_objet SET DEFAULT 0;
et apres :
Code :
DROP SEQUENCE objet_id_objet_seq;
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2005, 13h53   #3
Membre habitué
 
Avatar de Tchinkatchuk
 
Homme Sylvain Gourvil
Freelance en développement Web
Inscription : mars 2005
Messages : 248
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Gourvil
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Freelance en développement Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2005
Messages : 248
Points : 141
Points : 141
En effet, cela devrait fonctionner.

Mais ca ne fonctionne pas. Pourtant ma table est maintenant :
Code :
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;
Tchinkatchuk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2005, 13h58   #4
Membre habitué
 
Avatar de Tchinkatchuk
 
Homme Sylvain Gourvil
Freelance en développement Web
Inscription : mars 2005
Messages : 248
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Gourvil
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Freelance en développement Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2005
Messages : 248
Points : 141
Points : 141
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
Tchinkatchuk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2005, 14h30   #5
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
J'ai bien une solution barbare :
tu recherche l'oid de objet_id_objet_seq
Code :
SELECT oid FROM pg_catalog.pg_class WHERE relname = 'objet_id_objet_seq'
et tu delete le record dans pg_depend
Code :
DELETE FROM pg_catalog.pg_depend WHERE objid = monoid
Methode bien barbare et surtout assez délicate mais ca fonctionne, apres tu peux dropper.
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2005, 09h51   #6
Membre habitué
 
Avatar de Tchinkatchuk
 
Homme Sylvain Gourvil
Freelance en développement Web
Inscription : mars 2005
Messages : 248
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Gourvil
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Freelance en développement Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2005
Messages : 248
Points : 141
Points : 141
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
Tchinkatchuk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2005, 10h26   #7
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
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.
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2005, 10h50   #8
Membre habitué
 
Avatar de Tchinkatchuk
 
Homme Sylvain Gourvil
Freelance en développement Web
Inscription : mars 2005
Messages : 248
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Gourvil
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Freelance en développement Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2005
Messages : 248
Points : 141
Points : 141
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
Tchinkatchuk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h31.


 
 
 
 
Partenaires

Hébergement Web