Oracle -da ishlayotganda, ba'zi yozuvlaringizda dublikatlar borligini ko'rishingiz mumkin. Siz bu takrorlanuvchi qatorlarni aniqlab, uning RowID yoki satr manzilidan foydalanib o'chirib tashlashingiz mumkin. Ishni boshlashdan oldin, yozuvlarni o'chirib tashlaganingizdan so'ng, ularga havola qilish kerak bo'lsa, zaxira jadvalini yaratish kerak.
Qadamlar
4 -usul 1: dublikatingizni aniqlash
Qadam 1. dublikatini aniqlang
Bunday holda, "Alan" dublikat namunasini aniqlang. Quyidagi SQL -ni kiritib, o'chirmoqchi bo'lgan yozuvlar aslida takrorlanganligiga ishonch hosil qiling.
Qadam 2. "Ismlar" nomli ustundan aniqlash
"" Ismlar "nomli ustun misolida" ustun_anom "ni Ismlar bilan almashtirgan bo'lar edingiz.
3 -qadam. Boshqa ustunlardan aniqlash
Agar siz dublikatni boshqa ustun bilan aniqlamoqchi bo'lsangiz, masalan, Alanning ismi emas, yoshi, "ustun_ nomi" o'rniga "Yoshlar" ni kiritgan bo'lar edingiz.
table_name, count (column_name)> 1 ga ega bo'lgan jadval guruhidan column_name, count (column_name) ni tanlang;
4 -usul 2: bitta dublikatni o'chirish
Qadam 1. "Ismlardan ismni tanlang
"Standart so'rovlar tilini anglatuvchi" SQL "dan keyin" ismlardan ism tanlash "ni kiriting.
Qadam 2. Ikki nusxadagi nomli qatorlarning hammasini o'chirib tashlang
"SQL" dan so'ng "name = 'Alan'; nomlaridan o'chirish" kiriting. " E'tibor bering, bu erda katta harflar yozilishi muhim, shuning uchun "Alan" nomli barcha satrlar o'chiriladi. "SQL" dan keyin "majburiyat" kiriting.
Qadam 3. Qatorni dublikatsiz kiriting
Endi siz "Alan" nomli barcha qatorlarni o'chirib tashlaganingizdan so'ng, "ism qiymatlariga qo'shish (" Alan "); ni kiritib, bitta qatorni qo'shishingiz mumkin. "SQL" dan so'ng, yangi qatorni yaratish uchun "majburiyat" ni kiriting.
Qadam 4. Yangi ro'yxatingizni ko'ring
Yuqoridagi amallarni bajarganingizdan so'ng, nomlardan tanlash * ni kiritish orqali sizda takroriy yozuvlar yo'qligini tekshirishingiz mumkin.
SQL> ismlardan nom tanlash; NAME ------------------------------ Alan Kerri Tom Alan qatorlari tanlangan. SQL> nomlardan o'chirish, bu erda name = 'Alan'; qatorlar o'chirildi. SQL> majburiyat; Majburiyat tugadi. SQL> ismlar qiymatlarini kiritish ('Alan'); qator yaratildi. SQL> majburiyat; Majburiyat tugadi. SQL> nomlardan * ni tanlang; NAME ------------------------------ Alan Kerri Tom qatorlari tanlangan.
3 -usul 4: Bir nechta dublikatlarni o'chirish
Qadam 1. O'chirmoqchi bo'lgan RowID -ni tanlang
"SQL" dan keyin "kiriting" qatorini tanlang, ismlardan ism;."
Qadam 2. dublikatini o'chirish
"SQL" dan so'ng, "rowid> nomlaridan o'chirish" ni kiriting (b nomlaridan min (rowid) ni tanlang, b.name = a.name); " takroriy yozuvlarni o'chirish uchun.
Qadam 3. dublikatlarini tekshiring
Yuqoridagilarni bajarganingizdan so'ng, buyruqlar "siz qatorlardan, ismlardan ism tanlang;" yozib, sizda takroriy yozuvlar mavjudligini tekshiradi. va keyin "majburiyat".
SQL> rowid ni tanlang, ismlardan ism; ROWID NOMI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Kerri AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan qatorlari tanlangan. SQL> nomlardan o'chirish a qaerda rowid> (b nomlaridan min (rowid) ni tanlang b bu erda b.name = a.name); qatorlar o'chirildi. SQL> rowid ni tanlang, ismlardan ism; ROWID NOMI ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Kerri AABJnsAAGAAAdfOAAD Tom qatorlari tanlangan. SQL> majburiyat; Majburiyat tugadi.
4 -usul 4: Ustunli satrlarni o'chirish
Qadam 1. Qatorlaringizni tanlang
"SQL" dan keyin "nomlaridan * ni tanlang;" kiriting; qatorlaringizni ko'rish uchun.
Qadam 2. Ikki nusxadagi qatorlarni ustunini aniqlab o'chirib tashlang
"SQL" so'zidan keyin kiriting "ismlardan o'chirish a qaerda rowid> (b nomlaridan min (rowid) ni tanlang b bu erda b.name = a.name va b.age = a.age);" takroriy yozuvlarni o'chirish uchun.
Qadam 3. dublikatlarini tekshiring
Yuqoridagi amallarni bajarganingizdan so'ng "nomlardan tanlash * ni kiriting;" va keyin takroriy yozuvlarni muvaffaqiyatli o'chirib tashlaganingizni tekshirish uchun "majburiyat" qo'ying.
SQL> nomlardan * ni tanlang; NOMI YOSHI ------------------------------ ---------- Alan 50 Kerri 51 Tom 52 Alan 50 qatorlar tanlangan. SQL> nomlardan o'chirish a qaerda rowid> (b nomlaridan a min. qator o'chirildi. SQL> nomlardan * ni tanlang; NOMI YOSHI ------------------------------ ---------- Alan 50 Kerri 51 Tom 52 qator tanlangan. SQL> majburiyat; Majburiyat tugadi.
Ogohlantirishlar
-
O'zingizning hisob qaydnomangizda zaxira jadvalini yarating, uni o'chirishdan oldin nima bo'lganini ko'rsatish uchun foydalanishingiz mumkin (agar savollar bo'lsa).
SQL> nomlardan * tanlash sifatida alan.names_backup jadvalini yarating; Jadval yaratildi.