Memigrasikan tabel tanpa kunci utama

Halaman ini menjelaskan cara memigrasikan tabel Oracle yang belum memiliki kunci utama.

Database Migration Service mengharuskan tabel PostgreSQL tujuan Anda memiliki kunci utama. Ruang kerja konversi Database Migration Service default menangani hal ini secara otomatis dengan membuat kolom rowid untuk tabel Anda yang tidak memiliki kunci utama.

Namun, jika Anda menggunakan ruang kerja konversi lama dengan alat migrasi Ora2Pg, dan tabel sumber Oracle tidak memiliki kunci utama, Anda harus membuat kunci secara manual.

Bagian berikut memberikan opsi cara membuat kunci utama untuk tabel sumber Oracle Anda.

Membuat kunci utama menggunakan kolom yang ada

Tabel Anda mungkin sudah memiliki kunci utama logis berdasarkan kolom atau kombinasi kolom. Misalnya, mungkin ada kolom dengan batasan atau indeks unik yang dikonfigurasi. Gunakan kolom ini untuk membuat kunci utama baru di cluster AlloyDB untuk PostgreSQL tujuan.

Membuat kunci utama menggunakan kolom rowid

Database Oracle menggunakan kolom pseudo rowid untuk menyimpan lokasi setiap baris dalam tabel. Untuk memigrasikan tabel Oracle yang tidak memiliki kunci utama, tambahkan kolom rowid baru di database PostgreSQL tujuan. Database Migration Service mengisi kolom dengan nilai numerik yang sesuai dari pseudokolom rowid Oracle sumber.

Untuk menambahkan kolom dan menetapkannya sebagai kunci utama, jalankan perintah berikut:

ALTER TABLE TABLE_NAME ADD COLUMN rowid numeric(33,0) NOT NULL;
CREATE SEQUENCE TABLE_NAME_rowid_seq INCREMENT BY -1 START WITH -1 OWNED BY TABLE_NAME.rowid;
ALTER TABLE TABLE_NAME ALTER COLUMN rowid SET DEFAULT nextval('TABLE_NAME_rowid_seq');
ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_NAME PRIMARY KEY (rowid);

Ganti kode berikut:

  • TABLE_NAME: Nama tabel tempat Anda ingin menambahkan kolom.
  • CONSTRAINT_NAME: ID untuk batasan PRIMARY KEY.

Membuat kunci utama menggunakan semua kolom

Jika Anda tidak dapat menggunakan opsi yang dijelaskan sebelumnya, dan tabel Oracle sumber Anda tidak memiliki baris duplikat, buat kunci utama menggunakan semua kolom tabel. Pastikan Anda tidak melebihi panjang maksimum kunci utama yang diizinkan oleh cluster PostgreSQL.