Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 11/07/2012 13:59:35
- MitsuTomoe
- Membre
Supprimer séquences orphelines
Bonjour à tous,
je viens de m'apercevoir que supprimer une table ne vire pas la séquence associée à la PK.
Bug or feature ?
Qqn aurait-il une requête pour supprimer toutes les séquences orphelines ? En 6 mois de dvpt, je dois en avoir des milliards...
J'ai déjà fait quelques select dans le méta-dictionnaire, mais je n'ose pas faire de modifs.
Je suis en 9.1.4 sous Ubuntu Server 12.04 .
Merci
PS : j'ai installé pg_snap, c'est super, même si je ne comprend pas encore toutes les infos.
J'ai pu corriger 2 tables où j'avais oublié de déclarer la PK .
Hors ligne
#2 11/07/2012 14:51:31
- gleu
- Administrateur
Re : Supprimer séquences orphelines
je viens de m'apercevoir que supprimer une table ne vire pas la séquence associée à la PK.
Je viens d'essayer et cela fonctionne. Comment avez-vous associé la séquence à la table ?
Qqn aurait-il une requête pour supprimer toutes les séquences orphelines ?
Une telle requête ne risque pas d'exister. Les séquences peuvent servir à plein d'autres choses que de faire des colonnes autoincrémentées dans les tables. Les supprimer automatiquement avec une requête pourrait amener beaucoup de problèmes. Vous allez devoir récupérer chaque séquence et vous demander si vous pouvez ou non la supprimer.
Guillaume.
Hors ligne
#3 11/07/2012 14:51:48
- gleu
- Administrateur
Re : Supprimer séquences orphelines
Et merci pour pgsnap au passage
Guillaume.
Hors ligne
#4 11/07/2012 15:17:02
- MitsuTomoe
- Membre
Re : Supprimer séquences orphelines
Je crée les tables dans phpPgAdmin et je met la PK en serial, ça crée la séquence automatiquement.
Si j'exporte une table, j'ai par exemple :
CREATE SEQUENCE pige_site_id_site_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;
ALTER TABLE public.pige_site_id_site_seq OWNER TO conclavi;
ALTER SEQUENCE pige_site_id_site_seq OWNED BY pige_site.id_site;
SELECT pg_catalog.setval('pige_site_id_site_seq', 1, true);
ALTER TABLE ONLY pige_site ALTER COLUMN id_site SET DEFAULT nextval('pige_site_id_site_seq'::regclass);
Hors ligne
#5 11/07/2012 15:22:07
- gleu
- Administrateur
Re : Supprimer séquences orphelines
Donc elle doit être supprimée lorsque la table est supprimée. Essayez, vous verrez que ça marche. Et si ce n'est pas le cas, quelle version de PostgreSQL utilisez-vous ?
Guillaume.
Hors ligne
#6 11/07/2012 15:30:23
- MitsuTomoe
- Membre
Re : Supprimer séquences orphelines
Je viens d'essayer sur cette table et ça marche . J'ai du confondre 2 noms ?
Désolé pour le bruit.
Hors ligne
Pages : 1