verwaiste Sequence löschen
Hallo!
Ich habe eine Tabelle "table". Dieser Tabelle hat eine Sequence mit
dem Namen "table_id_seq". Mit einem Synchronisationstool hab ich eine
Datenbank abgeglichen. Seit dem gibt es dort die Sequence
"table_id_seq1", die wurde beim Syncronistieren angelegt.
"table_id_seq" ist definitiv der Spalte "id" in der Tabelle "table"
zugeordnet. Es gibt sonst keine weitere Spalte mit einer Sequence.
Wenn ich nun aber "table_id_seq1" löschen möchte meint PostgreSQL,
dass "table_id_seq1" dass sie der Tabelle "table" zugeordnet ist.
Leider habe ich bei meiner Suche keinen Hinweis gefunden, in welcher
Systemtabelle die Sequencen verwaltet werden.
Viele Dank
Andr=E9 Laugks
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings
Re: ve
am Tue, dem 24.04.2007, um 19:20:56 +0200 mailte Andr=E9 Laugks folgende=
s:
> Leider habe ich bei meiner Suche keinen Hinweis gefunden, in welcher
> Systemtabelle die Sequencen verwaltet werden.
pg_depend
Versuch mal dies:
select relname from pg_class where relfilenode =3D (select refobjid from =
pg_depend where objid=3D'xyz_id_seq'::regclass and deptype=3D'i');
Ersetz das 'xyz_id_seq' durch den Namen der Sequence. Ich bin mir aber
grad nicht wirklich sicher, ob das obige sinnvoll ist, gehe also mit dem
Resultat vorsichtig um...
Es sollte Dir den Namen der Tabelle liefern, die die Sequence verwendet.
Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net
---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at
http://www.postgresql.org/about/donate
Re: verwaiste Sequence löschen
von A. Kretschmer <andreas.kretschmer [at] schollglas.com> am 24.04.2007:
> select relname from pg_class where relfilenode =3D (select refobjid
> from pg_depend where objid=3D'xyz_id_seq'::regclass and deptype=3D'i');
Ich habe mal Dein Statement ausgeführt:
# object_files_description_id_seq wird definitiv verwendet
CREATE TABLE object_files_description (
id INTEGER nextval('object_files_description_id_seq'::regclass),
.
.
.
) WITH OIDS;
select relname from pg_class where relfilenode =3D (select refobjid from =
pg_depend where
objid=3D'object_files_description_id_seq1'::regclass and deptype=3D'i');
relname
------------------------
object_files_description
Dann mal auf die harte Tour und die Sequence aus der Tabelle entfernt!
# danach
CREATE TABLE object_files_description (
id INTEGER,
.
.
.
) WITH OIDS;
select relname from pg_class where relfilenode =3D (select refobjid from =
pg_depend where
objid=3D'object_files_description_id_seq1'::regclass and deptype=3D'i');
relname
------------------------
object_files_description
Ich glaube, ich werde das Schema und die Daten separat exportieren.
Aus der SQL-Datei für das Schema lösche ich die "falschen" Sequencen.
Dann lösche ich die Datenbank und importiere wieder alles... :-(
Grüße
Andr=E9 Laugks
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match