Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Ändern des Datentyps einer Spalte, die von anderen Tabellen referenziert wird

Nein, es gibt keinen einfachen Weg, dies zu tun. Angenommen, beide Tabellen enthalten Daten, müssten Sie

  • Fügen Sie einen neuen VARCHAR2 hinzu Spalte in Tabelle A
  • A aktualisieren, um die neue Spalte gleich TO_CHAR( col1A ) zu setzen
  • Fügen Sie eine neue 'VARCHAR2'-Spalte zu Tabelle B hinzu
  • Aktualisiere B, um die Spalte gleich TO_CHAR( col2B ) zu setzen
  • Löschen Sie die vorhandene Fremdschlüsselbeschränkung
  • Löschen Sie die vorhandene Primärschlüsseleinschränkung
  • Lassen Sie col1A fallen von A
  • Lassen Sie col2B fallen von B
  • Benennen Sie die neuen Spalten (falls gewünscht) in A &B in col1A um und col2B
  • Erstellen Sie die neue Primärschlüsseleinschränkung
  • Erstellen Sie die neue Fremdschlüsseleinschränkung

Offensichtlich wird das eine ziemlich teure Operation.