PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Generieren Sie SQL, um den Primärschlüssel zu aktualisieren

Der bei weitem einfachste Weg, mit Primärschlüsseländerungen umzugehen, ist ALTER Ihre verweisenden Fremdschlüsseleinschränkungen müssen ON UPDATE CASCADE sein .

Es steht Ihnen dann frei, die Primärschlüsselwerte zu aktualisieren, und die Änderungen werden auf die untergeordneten Tabellen übertragen. Aufgrund all der zufälligen E/A kann es ein sehr langsamer Prozess sein, aber es wird funktionieren.

Sie müssen darauf achten, während des Prozesses nicht die Eindeutigkeitsbeschränkungen der Primärschlüsselspalte zu verletzen.

Ein umständlicherer, aber schnellerer Weg ist das Hinzufügen eines neuen UNIQUE Spalte für die neue PK, füllen Sie sie, fügen Sie neue Spalten zu allen verweisenden Tabellen hinzu, die auf die neue PK zeigen, löschen Sie die alten FK-Einschränkungen und -Spalten, und löschen Sie schließlich die alte PK.