Oracle -д ажиллаж байхдаа зарим бүртгэлээс давхардсан тоог олж болно. Та давхардсан мөрүүдийг тодорхойлж, харгалзах RowID alias мөрийн хаягийг ашиглан устгаж болно. Эхлэхээсээ өмнө бичлэг устгасны дараа танд лавлагаа хэрэгтэй бол нөөц хүснэгт үүсгээрэй.
Алхам
4 -ийн 1 -р арга: Давхардлыг тодорхойлох
Алхам 1. Давхардсан тоог тодорхойлох
Энэ жишээнд бид давхардсан "Алан" -ыг тодорхойлдог. Доорх SQL -ийг оруулснаар устгагдах бичлэгүүд үнэхээр давхардсан эсэхийг шалгаарай.
Алхам 2. "Нэр" нэртэй баганаас тодорхойл
Хэрэв баганад "Нэр" гэсэн гарчиг байгаа бол та "column_name" -ийг Нэрээр солих хэрэгтэй.
Алхам 3. Бусад баганыг тодорхойл
Хэрэв та өөр өөр баганаас давхардсан тоог тодорхойлохыг оролдож байгаа бол, жишээ нь Аланы насыг нэрнийх нь оронд оруулахгүй бол "column_name" гэх мэтийн оронд "Нас" гэж оруулна уу.
хүснэгтийн бүлгээс column_name, count (column_name) -ийг тоолох (column_name)> 1;
4 -ийн 2 -р арга: Ганц бие хуулбарыг устгах
Алхам 1. "Нэрээс нэр" -ийг сонгоно уу
"SQL" (стандарт асуулгын хэлний товчлол) -ын дараа "нэрнээс нэр сонгох" гэж оруулна уу.
Алхам 2. Давхардсан нэртэй бүх мөрийг устгах
"SQL" -гийн дараа "name = 'Alan';. Энд томоор бичих нь чухал гэдгийг тэмдэглэх нь зүйтэй бөгөөд ингэснээр энэ алхам нь "Алан" нэртэй бүх мөрүүдийг устгах боломжтой болно. "SQL" -гийн дараа "гүйцэтгэх" гэж оруулна уу.
Алхам 3. Давхардалгүйгээр мөрүүдийг дахин оруулна уу
Та бүх мөрүүдийг устгаад "Алан" -аар сольсон бол "нэрийн утгыг оруулах ('Алан');" гэж оруулаад нэгийг нь бөглөнө үү. "SQL" -гийн дараа "мөрдөх" гэж оруулаад шинэ мөр үүсгэнэ үү.
Алхам 4. Шинэ жагсаалтыг үзэх
Дээрх алхмуудыг хийсний дараа нэрсээс сонгох * гэж оруулснаар давхардсан бүртгэл байхгүй эсэхийг шалгаж болно.
SQL> нэрнээс нэрийг сонгох; НЭР ------------------------------ Алан Ситра Томи Алан Барис сонгогдсон. SQL> name = 'Alan' гэсэн нэрсээс устгах; Мөр устгагдсан байна. SQL> үүрэг гүйцэтгэдэг; / Даалгавар дууссан. SQL> нэрийн утгыг оруулах ('Alan'); эгнээ үүсгэсэн. SQL> үүрэг гүйцэтгэдэг; Амлалт дууссан. SQL> нэрнээс * сонгох; NAME ------------------------------ Алан Ситра Томи мөрүүдийг сонгосон.
4 -ийн 3 -р арга: Олон хуулбарыг устгах
Алхам 1. Устгахыг хүсч буй RowID -г сонгоно уу
"SQL" -г оруулсны дараа "select rowid, name from name;." Гэж оруулна уу.
Алхам 2. Давхардсан хуулбарыг устгах
"SQL" -г оруулсны дараа "rowid хаана байгаа нэрсээс устгах (b.name = a.name b нэрээс min (rowid) сонгоно уу);" оруулна уу. " давхардлыг арилгахын тулд.
Алхам 3. Давхардсан эсэхийг шалгана уу
Дээрх алхмуудыг хийж дууссаны дараа "rowid, name from name;" гэж оруулаад давхардсан эсэхийг шалгана уу. дараа нь "үүрэг хүлээх".
SQL> rowid, нэрээс нэр сонгох; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Том AABJnsAAGAAAdfOAAF Alan эгнээ сонгогдсон. SQL> нэрсээс устгах a where rowid> (b.name = a.name b нэрээс min (rowid) сонгох); мөрүүдийг устгасан. SQL> rowid, нэрээс нэр сонгох; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Том эгнээ сонгосон. SQL> үүрэг гүйцэтгэдэг; Амлалт дууссан.
4 -ийн 4 -р арга: Мөрүүдийг баганаар устгах
Алхам 1. Мөрийг сонгоно уу
"SQL" -гийн дараа "нэрсээс * сонгох;" оруулна уу. шугамыг харах боломжтой байх.
Алхам 2. Давхардсан мөрүүдийг баганыг нь тодорхойлж арилгана
"SQL" -г оруулсны дараа "rowid> гэсэн нэрнээс устгах" (b.name = a.name ба b.age = a.age гэсэн нэрсээс min (rowid) -г сонгоно уу); " давхардсан бүртгэлийг устгах.
Алхам 3. Давхардсан эсэхийг шалгана уу
Дээрх алхмуудыг хийсний дараа "нэрсээс * сонгох;" оруулна уу. дараа нь хуулбарыг үнэхээр устгасан эсэхийг харахын тулд "үүрэг хүлээ".
SQL> нэрнээс * сонгох; НЭР НАС ------------------------------ ---------- Алан 50 Ситра 51 Томи 52 Алан 50 мөрүүдийг сонгосон. SQL> нэрсээс устгах a хаана rowid> (b.name = a.name болон b.age = a.age гэсэн нэрсээс min (rowid) сонгох); мөрийг устгасан. SQL> нэрнээс * сонгох; НЭР НАС ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 мөр сонгосон. SQL> үүрэг гүйцэтгэдэг; Амлалт дууссан.
Анхааруулга
-
Нэвтрэх хуудсандаа давхардсан хүснэгт үүсгээрэй, ингэснээр ямар ч өгөгдөл устгагдаагүй тохиолдолд агуулгын лавлагаа болгон ашиглах боломжтой болно (хэрэв танд асуулт байвал).
SQL> нэрсээс * сонгох байдлаар alan.names_backup хүснэгт үүсгэх; Хүснэгт үүсгэсэн.