Oracle -де жұмыс істегенде, сізде кейбір жазбалардың қайталануы бар екенін байқауға болады. Сіз бұл қайталанатын жолдарды анықтап, оның RowID немесе жол мекенжайын қолдана отырып жоя аласыз. Жұмысты бастамас бұрын, жазбаларды жойғаннан кейін оларға сілтеме жасау қажет болған жағдайда резервтік кестені құру қажет.
Қадамдар
4 -ші әдіс 1: Дубликатты анықтау
Қадам 1. Телнұсқаны анықтаңыз
Бұл жағдайда «Алан» телнұсқасының үлгісін анықтаңыз. Төмендегі SQL енгізу арқылы жойғыңыз келетін жазбалардың қайталанатынына көз жеткізіңіз.
Қадам 2. «Есімдер» деп аталатын бағаннан анықтау
«» Есімдер «деп аталатын баған жағдайында сіз» column_name «дегенді Аттармен ауыстырар едіңіз.
Қадам 3. Басқа бағандардан анықтау
Егер сіз телнұсқаны басқа бағанмен анықтағыңыз келсе, мысалы, Аланның есімі емес, жасы, сіз «column_name» орнына «Age» деп жазасыз.
column_name, count (column_name)> 1 бар column_name бойынша кесте тобынан count (column_name) таңдаңыз;
2 -ші әдіс 4: Бір көшірмені жою
Қадам 1. Есімдерден «атауды таңдаңыз
«Сұраудың стандартты тілін білдіретін» SQL «сөзінен кейін» аттардан атауды таңдауды «енгізіңіз.
Қадам 2. Қайталанатын атауы бар барлық жолдарды жойыңыз
«SQL» сөзінен кейін name = 'Alan';. « Мұнда бас әріппен жазу маңызды екенін ескеріңіз, сондықтан бұл «Алан» деп аталатын барлық жолдарды жояды. «SQL» сөзінен кейін «міндеттеме» енгізіңіз.
3 -қадам. Қайталанатын жолды қайталаңыз
Енді сіз «Алан» мысал атауы бар барлық жолдарды жойғаннан кейін, «атау мәндеріне кірістіру (» Алан '); «енгізу арқылы бір жолды кірістіре аласыз. «SQL» -ден кейін жаңа жолды құру үшін «міндеттеме» енгізіңіз.
Қадам 4. Жаңа тізімді қараңыз
Жоғарыда көрсетілген әрекеттерді орындағаннан кейін, «аттардан таңдау * енгізу» енгізу арқылы сізде қайталанатын жазбалар жоқ екеніне көз жеткізуге болады.
SQL> атаулардан атауды таңдау; АТЫ ------------------------------ Алан Кэрри Том Алан жолдары таңдалды. SQL> name = 'Alan' болатын атаулардан жою; жолдар жойылды. SQL> міндеттеме; Міндеттеме аяқталды. SQL> атаулар мәндеріне кірістіру ('Alan'); қатар құрылды. SQL> міндеттеме; Міндеттеме аяқталды. SQL> аттардан * таңдаңыз; АТЫ ------------------------------ Алан Кэрри Том жолдары таңдалды.
3 -ші әдіс 4: Бірнеше көшірмені жою
Қадам 1. Жойғыңыз келетін RID идентификаторын таңдаңыз
«SQL» -ден кейін «енгізу» жолағын таңдаңыз, есімдерден атау;. «
Қадам 2. Көшірмені жойыңыз
«SQL» енгізгеннен кейін, «rowid» атауынан жоюды енгізіңіз (b атауынан min (rowid) таңдаңыз, b.name = a.name); « қайталанатын жазбаларды жою үшін.
Қадам 3. Қайталанғанын тексеріңіз
Жоғарыда айтылғандарды орындағаннан кейін, командалар сізде әлі де қайталанатын жазбалардың бар -жоғын тексереді, «Rowid, name from names;» енгізіңіз. содан кейін «міндеттеме».
SQL> rowid, атауынан атауды таңдаңыз; ROWID АТЫ ------------------ ------------------------------ Алан жолдары таңдалды. SQL> атауынан жою a қайда rowid> (b аттарынан min (rowid) таңдаңыз, мұнда b.name = a.name); жолдар жойылды. SQL> rowid, атауынан атауды таңдаңыз; ROWID АТЫ ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Алан AABJnsAAGAAAdfOAAC Кэрри AABJnsAAGAAAdfOAAD Том жолдары таңдалды. SQL> міндеттеме; Міндеттеме аяқталды.
4 -ші әдіс 4: Бағаналы жолдарды жою
Қадам 1. Жолдарды таңдаңыз
«SQL» сөзінен кейін «атауынан * таңдаңыз;» енгізіңіз; сіздің жолдарыңызды көру үшін.
2 -қадам. Бағанды анықтау арқылы қайталанатын жолдарды жойыңыз
«SQL» «енгізгеннен кейін» атауды жойыңыз, онда rowid> (b.name = a.name және b.age = a.age а аттарынан min (rowid) таңдаңыз); « қайталанатын жазбаларды жою үшін.
Қадам 3. Қайталанғанын тексеріңіз
Жоғарыда көрсетілген әрекеттерді орындап болған соң, «select * from names» енгізіңіз; содан кейін қайталанатын жазбаларды сәтті жойғаныңызды тексеру үшін «міндеттеме беріңіз».
SQL> аттардан * таңдаңыз; АТА ЖАСЫ ------------------------------ ---------- Алан 50 Кэрри 51 Том 52 Алан 50 жолдар таңдалды. SQL> атауынан жою a қайда rowid> (b.name = a.name және b.age = a.age аттарынан min (rowid) таңдаңыз b); жол жойылды. SQL> аттардан * таңдаңыз; АТА ЖАСЫ ------------------------------ ---------- Алан 50 Кэрри 51 Том 52 жол таңдалды. SQL> міндеттеме; Міндеттеме аяқталды.
Ескертулер
-
Өзіңіздің кіруіңізде сақтық көшірме кестесін жасаңыз, оны кез келген жою болғанға дейін болғанын көрсету үшін пайдалануға болады (егер сұрақтар туындаса).
SQL> атауларды таңдау арқылы * alan.names_backup кестесін құру; Кесте құрылды.