Parkside
Benutzer
- Beiträge
- 20
Ich möchte ein kleines Projekt mit 14 Tabellen von MariaDB zu PG migrieren. Nicht alle 14 Tabellen haben zum Glück Referenzen untereinander, aber mindestens eine wird in einer zweiten Tabelle über ihre id, die gleichzeitig primary key ist, per foreign key referenziert. Das bedeutet, daß die Spalte id nach der Migration dieselben Werte enthalten muß wie vorher.
Jetzt verstehe ich den Umgang mit dem Datentyp serial bei PG so, daß man ihn nur angeben kann, wenn die Spalte angelegt wird, da in diesem Moment die Sequenz kreiert wird. Wenn die Spalte erstmal existiert, kann ich nicht nachträglich z. B. von int auf serial wechseln. (Ist doch richtig soweit, oder?)
Ich habe jetzt also das Problem, die Tabelle so zu migrieren, daß alle Spalten und Zeilen hinterher die gleichen Werte haben, und insbesondere id beim Anlegen neuer Datensätze korrekt hochgezählt wird (auto-increment).
Meine Versuche fußen bislang auf Erfahrungen mit DBeaver und ein bißchen SQL-Arbeit in psql. So habe ich z. B. die Tabelle ex- und importiert (ein Schritt mit DBeaver), habe dann eine neue Spalte id_pq angelegt mit Datentyp serial, und dann füllt PG id_pq schön mit aufeinanderfolgenden Werten, die aber leider von der originalen id-Spalte abweichen, weil da mal Datensätze gelöscht worden sind und die Abfolge der id-Werte Löcher hat und nicht einmal bei 1 beginnt.
Habt Ihr Tips, wie ich das lösen kann? Ich bin noch ganz am Anfang, was das Kennenlernen von PG angeht, daher vielen Dank vorab für die Unterstützung!
Jetzt verstehe ich den Umgang mit dem Datentyp serial bei PG so, daß man ihn nur angeben kann, wenn die Spalte angelegt wird, da in diesem Moment die Sequenz kreiert wird. Wenn die Spalte erstmal existiert, kann ich nicht nachträglich z. B. von int auf serial wechseln. (Ist doch richtig soweit, oder?)
Ich habe jetzt also das Problem, die Tabelle so zu migrieren, daß alle Spalten und Zeilen hinterher die gleichen Werte haben, und insbesondere id beim Anlegen neuer Datensätze korrekt hochgezählt wird (auto-increment).
Meine Versuche fußen bislang auf Erfahrungen mit DBeaver und ein bißchen SQL-Arbeit in psql. So habe ich z. B. die Tabelle ex- und importiert (ein Schritt mit DBeaver), habe dann eine neue Spalte id_pq angelegt mit Datentyp serial, und dann füllt PG id_pq schön mit aufeinanderfolgenden Werten, die aber leider von der originalen id-Spalte abweichen, weil da mal Datensätze gelöscht worden sind und die Abfolge der id-Werte Löcher hat und nicht einmal bei 1 beginnt.
Habt Ihr Tips, wie ich das lösen kann? Ich bin noch ganz am Anfang, was das Kennenlernen von PG angeht, daher vielen Dank vorab für die Unterstützung!