PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zu postgresql



pingufreak
03.02.05, 11:26
Hi,
ich hätte eine Frage zu postgresql...

Ich habe eine Tabelle, bei der ein "full analyze" zu lange dauern würde (daher: die Tabelle wird gesperrt für den analyze-Zeitraum). Jetzt wollte ich eine neue Tabelle (mit dem selben Namen und einer 2 dahinter) anlegen und die Daten von der produktiven Tabelle in die zweite Tabelle kopieren...

Dann wollte ich die produktive Tabelle umbennenen (mit "alter table tbl_produktiv rename to tbl_produktivold"...) und dann die zweite Tabelle wie die produktive Tabelle bennenen (mit "alter table tbl_test rename to tbl_produktiv").

Das müsste doch eigentlich klappen oder?

Jetzt habe ich ein bisschen damit gepspielt und mit ist ein Fehler aufgefallen. Wenn ich einen Dump (für die Testtabelle) einspiele und dann die Testtabelle umbenenne und den Dump der Testtabelle nochmals einspiele, erhalte ich einen Fehler... Lösche ich die umbenannte Testtabelle wieder, funktioniert das einspielen von dem Dump wieder einwandfrei. Wie kann das sein wenn ich doch die Testtabelle umgenannt habe?

Hoffe ihr könnt mir helfen.

Grüße
pingufreak

pingufreak
03.02.05, 13:17
Ach es funktioniert doch... Da war nur ein constraint mit einem index der den gleichen namen hatte... Daher konnte ich die zweite Tabelle nicht erstellen.

pingufreak
03.02.05, 14:57
Hi,
kurze Frage zu postgresql...

Ich möchte eine alte Tabelle mit einer anderen Tabelle (gleiche Typen, gleiche Struktur) updaten. Wie kann ich das am besten machen, wenn ich nicht weiß welche Datensätze nicht in der alten Tabelle enthalten sind? Wenn ich die kompletten Datensätze in die alte einfügen will (z.B. mit "insert into tbl1 (select * from tbl1_new)") erhalte ich "cannot insert a duplicate key into unique index...", da der Datensatz schon vorhanden ist...

Das ist ja auch ok so :). Jedoch bricht er dann das insert ab und schreibt die darauffolgenden Daten nicht in die Tabelle. Ich möchte, dass er (auch wenn ein Datensatz schon vorhanden ist) das insert-Statement nicht stoppt.

Hat jemand eine Ahnung wie das geht? Brauch ich dafür eigene SQL-Funktion?

Gruß
pingufreak