4 Cara Menghapus Rekod Pendua di Oracle

Isi kandungan:

4 Cara Menghapus Rekod Pendua di Oracle
4 Cara Menghapus Rekod Pendua di Oracle

Video: 4 Cara Menghapus Rekod Pendua di Oracle

Video: 4 Cara Menghapus Rekod Pendua di Oracle
Video: Cara Download Microsoft Office 2020 Percuma 2024, Mungkin
Anonim

Semasa bekerja di Oracle, anda dapat mencari pendua pada beberapa rekod. Anda boleh membuang baris pendua dengan mengenal pasti dan menggunakan alamat baris alias RowID yang sesuai. Sebelum memulakan, buat jadual sandaran sekiranya anda memerlukan rujukan setelah rekod dihapus.

Langkah

Kaedah 1 dari 4: Mengenal pasti Pendua

Padam Rekod Pendua di Oracle Langkah 1
Padam Rekod Pendua di Oracle Langkah 1

Langkah 1. Kenal pasti pendua

Dalam contoh ini, kami mengenal pasti pendua "Alan". Pastikan rekod yang akan dipadam memang pendua dengan memasukkan SQL di bawah.

Padam Rekod Pendua di Oracle Langkah 2
Padam Rekod Pendua di Oracle Langkah 2

Langkah 2. Kenalpasti dari lajur yang bertajuk "Nama"

Sekiranya lajur mempunyai judul "Nama", anda perlu mengganti "kolom_nama" dengan Nama.

Padam Rekod Pendua di Oracle Langkah 3
Padam Rekod Pendua di Oracle Langkah 3

Langkah 3. Kenali lajur yang lain

Sekiranya anda cuba mengenal pasti pendua dari lajur yang berlainan, misalnya umur Alan dan bukannya namanya, masukkan "Umur" sebagai pengganti "nama_nama" dan sebagainya.

pilih kolum_nama, hitung (kolom_nama) dari kumpulan jadual dengan lajur_nama yang mempunyai kiraan (lajur_nama)> 1;

Kaedah 2 dari 4: Mengeluarkan Pendua Tunggal

Padam Rekod Pendua di Oracle Langkah 4
Padam Rekod Pendua di Oracle Langkah 4

Langkah 1. Pilih "nama dari nama"

Selepas "SQL" (kependekan dari Standard Query Language), masukkan "pilih nama dari nama".

Padam Rekod Pendua di Oracle Langkah 5
Padam Rekod Pendua di Oracle Langkah 5

Langkah 2. Padamkan semua baris dengan nama pendua

Selepas "SQL", masukkan "hapus dari nama di mana nama = 'Alan';." Perlu diingatkan bahawa penggunaan huruf besar penting di sini agar langkah ini dapat menghapus semua baris yang bernama "Alan". Selepas "SQL", masukkan "komit"

Padam Rekod Pendua di Oracle Langkah 6
Padam Rekod Pendua di Oracle Langkah 6

Langkah 3. Masukkan semula baris tanpa pendua

Sekarang setelah anda memadamkan semua baris dan menggantinya dengan "Alan", isi satu dengan memasukkan "masukkan ke dalam nilai nama ('Alan');." Selepas "SQL", masukkan "komit" untuk membuat baris baru.

Padam Rekod Pendua di Oracle Langkah 7
Padam Rekod Pendua di Oracle Langkah 7

Langkah 4. Lihat senarai baru

Setelah menyelesaikan langkah-langkah di atas, anda boleh memeriksa untuk memastikan tidak ada lagi catatan pendua dengan memasukkan "select * from names".

SQL> pilih nama dari nama; NAMA ------------------------------ Alan Citra Tomi Alan Baris dipilih. SQL> hapus dari nama di mana nama = 'Alan'; Garisan dipadamkan. SQL> melakukan; / Komitmen selesai. SQL> masukkan ke dalam nilai nama ('Alan'); baris dibuat. SQL> melakukan; Komitmen selesai. SQL> pilih * dari nama; NAMA ------------------------------ Alan Citra Tomi baris dipilih.

Kaedah 3 dari 4: Menghapus Pendua Berganda

Padam Rekod Pendua di Oracle Langkah 8
Padam Rekod Pendua di Oracle Langkah 8

Langkah 1. Pilih RowID yang ingin anda padamkan

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

Padam Rekod Pendua di Oracle Langkah 9
Padam Rekod Pendua di Oracle Langkah 9

Langkah 2. Keluarkan pendua

Selepas "SQL", masukkan "hapus dari nama a di mana rowid> (pilih min (rowid) dari nama b di mana b.name = a.name);" untuk membuang pendua.

Padam Rekod Pendua di Oracle Langkah 10
Padam Rekod Pendua di Oracle Langkah 10

Langkah 3. Periksa pendua

Setelah menyelesaikan langkah-langkah di atas, periksa pendua dengan memasukkan "pilih rowid, name from names;" kemudian "komited".

SQL> pilih rowid, nama dari nama; NAMA ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Baris Alan dipilih. SQL> hapus dari nama a di mana rowid> (pilih min (rowid) dari nama b di mana b.name = a.name); baris dipadamkan. SQL> pilih rowid, nama dari nama; NAMA ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Baris Tom dipilih. SQL> melakukan; Komitmen selesai.

Kaedah 4 dari 4: Menghapus Baris mengikut Lajur

Padam Rekod Pendua di Oracle Langkah 11
Padam Rekod Pendua di Oracle Langkah 11

Langkah 1. Pilih baris

Selepas "SQL", masukkan "pilih * dari nama;" untuk dapat melihat garis.

Padam Rekod Pendua di Oracle Langkah 12
Padam Rekod Pendua di Oracle Langkah 12

Langkah 2. Keluarkan baris pendua dengan mengenal pasti lajurnya

Selepas "SQL '" masukkan "hapus dari nama a di mana rowid> (pilih min (rowid) dari nama b di mana b.name = a.name dan b.age = a.age);" untuk membuang catatan pendua.

Padam Rekod Pendua di Oracle Langkah 13
Padam Rekod Pendua di Oracle Langkah 13

Langkah 3. Periksa pendua

Setelah anda menyelesaikan langkah-langkah di atas, masukkan "pilih * dari nama;" kemudian "komit" untuk melihat sama ada pendua telah dikeluarkan.

SQL> pilih * dari nama; NAMA UMUR ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 baris dipilih. SQL> hapus dari nama a di mana rowid> (pilih min (rowid) dari nama b di mana b.name = a.name dan b.age = a.age); baris dipadamkan. SQL> pilih * dari nama; NAMA UMUR ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 baris dipilih. SQL> melakukan; Komitmen selesai.

Amaran

  • Buat jadual pendua dalam log masuk anda sehingga dapat digunakan sebagai rujukan isi ketika tidak ada data yang dihapus (jika Anda memiliki pertanyaan).

    SQL> buat jadual alan.names_backup sebagai pilih * dari nama; Jadual dibuat.

Disyorkan: