4 Cara Menghapus Duplikat Record di Oracle

Daftar Isi:

4 Cara Menghapus Duplikat Record di Oracle
4 Cara Menghapus Duplikat Record di Oracle

Video: 4 Cara Menghapus Duplikat Record di Oracle

Video: 4 Cara Menghapus Duplikat Record di Oracle
Video: 3 CARA MENYIMPAN GAMBAR DI POWER POINT | CARA KEDUA JARANG DIKETAHUI 2024, Mungkin
Anonim

Saat bekerja di Oracle, Anda mungkin menemukan bahwa beberapa catatan Anda memiliki duplikat. Anda dapat menghapus baris duplikat ini dengan mengidentifikasinya dan menggunakan RowID, atau alamat barisnya. Sebelum Anda mulai, Anda harus membuat tabel cadangan jika Anda perlu merujuknya setelah Anda menghapus catatan.

Langkah

Metode 1 dari 4: Mengidentifikasi Duplikat Anda

Hapus Duplikat Catatan di Oracle Langkah 1
Hapus Duplikat Catatan di Oracle Langkah 1

Langkah 1. Identifikasi duplikatnya

Dalam hal ini, identifikasi duplikat contoh, "Alan." Pastikan bahwa catatan yang Anda coba hapus benar-benar duplikat dengan memasukkan SQL di bawah ini.

Hapus Duplikat Catatan di Oracle Langkah 2
Hapus Duplikat Catatan di Oracle Langkah 2

Langkah 2. Mengidentifikasi dari kolom bernama "Nama

"Dalam contoh kolom bernama "Nama," Anda akan mengganti "nama_kolom" dengan Nama.

Hapus Duplikat Catatan di Oracle Langkah 3
Hapus Duplikat Catatan di Oracle Langkah 3

Langkah 3. Mengidentifikasi dari kolom lain

Jika Anda mencoba mengidentifikasi duplikat dengan kolom yang berbeda, misalnya usia Alan daripada namanya, Anda akan memasukkan "Usia" di tempat "nama_kolom" dan seterusnya.

pilih column_name, count(column_name) dari grup tabel dengan column_name yang memiliki count (column_name) > 1;

Metode 2 dari 4: Menghapus Duplikat Tunggal

Hapus Duplikat Catatan di Oracle Langkah 4
Hapus Duplikat Catatan di Oracle Langkah 4

Langkah 1. Pilih "nama dari nama

"Setelah "SQL," yang merupakan singkatan dari Standard Query Language, masukkan "pilih nama dari nama."

Hapus Duplikat Catatan di Oracle Langkah 5
Hapus Duplikat Catatan di Oracle Langkah 5

Langkah 2. Hapus semua baris dengan nama duplikat

Setelah "SQL, " masukkan "delete from names where name='Alan';." Perhatikan bahwa kapitalisasi penting di sini, jadi ini akan menghapus semua baris bernama "Alan." Setelah "SQL, " masukkan "komit."

Hapus Duplikat Catatan di Oracle Langkah 6
Hapus Duplikat Catatan di Oracle Langkah 6

Langkah 3. Sewa baris tanpa duplikat

Sekarang Anda telah menghapus semua baris dengan nama contoh "Alan," Anda dapat menyisipkannya kembali dengan memasukkan "masukkan ke dalam nilai nama ('Alan');." Setelah "SQL, " masukkan "komit" untuk membuat baris baru Anda.

Hapus Duplikat Catatan di Oracle Langkah 7
Hapus Duplikat Catatan di Oracle Langkah 7

Langkah 4. Lihat daftar baru Anda

Setelah Anda menyelesaikan langkah-langkah di atas, Anda dapat memeriksa untuk memastikan Anda tidak lagi memiliki catatan duplikat dengan memasukkan "pilih * dari nama."

SQL > pilih nama dari nama; NAMA ------------------------------ Alan Carrie Tom Alan baris dipilih. SQL > hapus dari nama di mana name='Alan'; baris dihapus. SQL > komit; Komitmen selesai. SQL > masukkan ke dalam nilai nama ('Alan'); baris dibuat. SQL > komit; Komitmen selesai. SQL > pilih * dari nama; NAMA ----------------------------------------- Alan Carrie Tom baris dipilih.

Metode 3 dari 4: Menghapus Banyak Duplikat

Hapus Duplikat Catatan di Oracle Langkah 8
Hapus Duplikat Catatan di Oracle Langkah 8

Langkah 1. Pilih RowID yang ingin Anda hapus

Setelah "SQL, " masukkan "pilih rowid, nama dari nama;."

Hapus Duplikat Catatan di Oracle Langkah 9
Hapus Duplikat Catatan di Oracle Langkah 9

Langkah 2. Hapus duplikat

Setelah "SQL, " masukkan "hapus dari nama a where rowid > (pilih min(rowid) dari nama b where b.name=a.name);" untuk menghapus catatan duplikat.

Hapus Duplikat Catatan di Oracle Langkah 10
Hapus Duplikat Catatan di Oracle Langkah 10

Langkah 3. Periksa duplikat

Setelah Anda menyelesaikan hal di atas, perintah memeriksa untuk melihat apakah Anda masih memiliki catatan duplikat dengan memasukkan "pilih rowid, nama dari nama;" dan kemudian "berkomitmen."

SQL > pilih rowid, nama dari nama; NAMA BARIS ------------------------------------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Baris Alan dipilih. SQL > hapus dari nama a where rowid > (pilih min(rowid) dari nama b where b.name=a.name); baris dihapus. SQL > pilih rowid, nama dari nama; NAMA BARIS ------------------------------------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Baris Tom dipilih. SQL > komit; Komitmen selesai.

Metode 4 dari 4: Menghapus Baris dengan Kolom

Hapus Duplikat Catatan di Oracle Langkah 11
Hapus Duplikat Catatan di Oracle Langkah 11

Langkah 1. Pilih baris Anda

Setelah "SQL, " masukkan "pilih * dari nama;" untuk melihat baris Anda.

Hapus Duplikat Catatan di Oracle Langkah 12
Hapus Duplikat Catatan di Oracle Langkah 12

Langkah 2. Hapus baris duplikat dengan mengidentifikasi kolomnya

Setelah "SQL'" masukkan "hapus dari nama a where rowid > (pilih min(rowid) dari nama b where b.name=a.name dan b.age=a.age);" untuk menghapus rekaman duplikat.

Hapus Duplikat Catatan di Oracle Langkah 13
Hapus Duplikat Catatan di Oracle Langkah 13

Langkah 3. Periksa duplikat

Setelah Anda menyelesaikan langkah-langkah di atas, masukkan "pilih * dari nama;" dan kemudian "komit" untuk memeriksa bahwa Anda telah berhasil menghapus rekaman duplikat.

SQL > pilih * dari nama; NAMA USIA ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 baris yang dipilih. SQL > hapus dari nama a where rowid > (pilih min(rowid) dari nama b where b.name=a.name dan b.age=a.age); baris dihapus. SQL > pilih * dari nama; NAMA USIA ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 baris dipilih. SQL > komit; Komitmen selesai.

Peringatan

  • Buat tabel cadangan di proses masuk Anda sendiri yang dapat Anda gunakan untuk menunjukkan apa yang ada sebelum penghapusan terjadi (jika ada pertanyaan).

    SQL > buat tabel alan.names_backup sebagai pilih * dari nama; Tabel dibuat.

Direkomendasikan: