Oracle- ում աշխատելիս կարող եք պարզել, որ ձեր որոշ գրառումներ կրկնօրինակներ ունեն: Դուք կարող եք ջնջել այս կրկնօրինակ տողերը ՝ դրանք նույնականացնելով և օգտագործելով դրա RowID- ը կամ տողի հասցեն: Սկսելուց առաջ դուք պետք է ստեղծեք պահուստային աղյուսակ, եթե գրառումները ջնջելուց հետո անհրաժեշտ լինի դրանք հղել:
Քայլեր
Մեթոդ 1 4 -ից. Բացահայտեք ձեր կրկնօրինակը
Քայլ 1. Բացահայտեք կրկնօրինակը:
Այս դեպքում նշեք կրկնօրինակի օրինակը ՝ «Ալան»: Համոզվեք, որ գրառումները, որոնք փորձում եք ջնջել, իրականում կրկնօրինակներ են ՝ ստորև բերելով SQL:
Քայլ 2. «Անուններ» անունով սյունակից նույնականացում:
«« Անուններ »անունով սյունակի դեպքում« սյունակի_անունը »կփոխարինեիք Անուններով:
Քայլ 3. Այլ սյուներից նույնականացում:
Եթե դուք փորձում էիք կրկնօրինակը նույնացնել մեկ այլ սյունակով, օրինակ ՝ Ալանի տարիքը, այլ ոչ թե նրա անունը, ապա «դարաշրջան» մուտքագրեիք «սյունակի_անվան» տեղում և այլն:
ընտրել սյունակի_անուն, հաշվել (սյունակի_անուն) աղյուսակի խմբից ըստ սյունակի_անուն `հաշվելով (սյունակի_անուն)> 1;
Մեթոդ 2 4 -ից. Մեկ կրկնակի ջնջում
Քայլ 1. Ընտրեք «անունը անուններից:
«SQL» - ից հետո, որը նշանակում է Ստանդարտ հարցման լեզու, մուտքագրեք «ընտրեք անուն անուններից»:
Քայլ 2. Deնջել բոլոր տողերը կրկնօրինակ անունով:
«SQL» - ից հետո «մուտքագրեք» ջնջել անուններից, որտեղ անունը = 'Ալան'; Նկատի ունեցեք, որ մեծատառերն այստեղ կարևոր են, ուստի սա կջնջի «Ալան» անունով բոլոր տողերը: «SQL» - ից հետո մուտքագրեք «commit»:
Քայլ 3. Վարձեք տողը առանց կրկնօրինակների:
Այժմ, երբ ջնջել եք «Ալան» օրինակով բոլոր տողերը, կարող եք մեկը հետ տեղադրել ՝ մուտքագրելով «տեղադրեք անվան արժեքների մեջ (« Ալան »);.»: «SQL» - ից հետո մուտքագրեք «commit» ՝ ձեր նոր տողը ստեղծելու համար:
Քայլ 4. Տեսեք ձեր նոր ցուցակը:
Վերոնշյալ քայլերն ավարտելուց հետո կարող եք ստուգել ՝ համոզվելու համար, որ այլևս չունեք կրկնօրինակ գրառումներ ՝ մուտքագրելով «անուններից ընտրեք *»:
SQL> անուններից ընտրեք անուն; ԱՆՎԱՆՈՄ ------------------------------ Ալան Քերի Թոմ Ալանի տողերն ընտրված են: SQL> ջնջել անուններից, որտեղ անունը = 'Ալան'; տողերը ջնջված են: SQL> պարտավորություն; Պարտավորությունն ավարտված է: SQL> տեղադրեք անունների արժեքներ («Ալան»); տողը ստեղծվել է: SQL> պարտավորություն; Պարտավորությունն ավարտված է: SQL> ընտրեք * անուններից; ԱՆՎԱՆՈՄԸ ------------------------------ Ալան Քերի Թոմի տողերն ընտրված են:
Մեթոդ 3 4 -ից ՝ Dնջել բազմաթիվ կրկնօրինակներ
Քայլ 1. Ընտրեք RowID- ը, որը ցանկանում եք ջնջել:
«SQL» - ից հետո «enter» - ում ընտրեք rowid, անունը անուններից; »:
Քայլ 2. leteնջել կրկնօրինակը:
«SQL» - ից հետո «մուտքագրեք» անուններից ջնջեք a rowid> (ընտրեք min (rowid) անուններից b որտեղ b.name = a.name); " ջնջել կրկնօրինակ գրառումները:
Քայլ 3. Ստուգեք կրկնօրինակների առկայությունը:
Վերոնշյալն ավարտելուց հետո հրամանները ստուգում են ՝ արդյոք դեռ ունե՞ք կրկնօրինակ գրառումներ `մուտքագրելով" select rowid, name from names; " իսկ հետո «կատարել»:
SQL> ընտրել rowid, անուն անուններից; ROWID NAME ------------------ ---------------------------------- AABJnsAAGAAAdfOAAA Ալան AABJnsAAGAAAdfOAAB Ալան AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAdfOAAD Թոմ AABJnsAAGAAAdfOAAF Ալանի տողերն ընտրված են: SQL> ջնջել a անուններից a rowid> (ընտրել min (rowid) անուններից b որտեղ b.name = a.name); տողերը ջնջված են: SQL> ընտրել rowid, անուն անուններից; ROWID NAME ------------------------------------------------------ AABJnsAAGAAAdfOAAA Ալան AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Թոմի տողերն ընտրված են: SQL> պարտավորություն; Պարտավորությունն ավարտված է:
Մեթոդ 4 -ից 4 -ը. Սյունակներով տողեր ջնջելը
Քայլ 1. Ընտրեք ձեր տողերը:
«SQL» - ից հետո մուտքագրեք «անուններից ընտրեք *»; քո շարքերը տեսնելու համար:
Քայլ 2. leteնջել կրկնօրինակ տողերը `նշելով դրանց սյունակը:
«SQL» - ից հետո «մուտքագրեք» անուններից ջնջեք a rowid> (ընտրեք min (rowid) անուններից b որտեղ b.name = a.name և b.age = a.age); " ջնջել կրկնօրինակ գրառումները:
Քայլ 3. Ստուգեք կրկնօրինակների առկայությունը:
Վերոնշյալ քայլերն ավարտելուց հետո մուտքագրեք "ընտրեք * անուններից;" և այնուհետև «կատարել», որպեսզի ստուգեք, որ կրկնօրինակ գրառումները հաջողությամբ ջնջել եք:
SQL> ընտրեք * անուններից; ԱՆՎԱՆ ՏԱՐԻՔ ---------------------------------------------- Ալան 50 Քերի 51 Թոմ 52 Ալան 50 տողեր են ընտրված: SQL> ջնջել a անուններից a rowid> (ընտրել min (rowid) անուններից b որտեղ b.name = a.name և b.age = a.age); տողը ջնջված է: SQL> ընտրեք * անուններից; ԱՆՎԱՆ ՏԱՐԻՔ ---------------------------------------------- Ալան 50 Քերի 51 Թոմ 52 տող ընտրված. SQL> պարտավորություն; Պարտավորությունն ավարտված է:
Գուշացումներ
-
Ստեղծեք պահուստային աղյուսակ ձեր սեփական մուտքի մեջ, որը կարող եք օգտագործել ՝ ցույց տալու համար, թե ինչ կար այնտեղ, մինչև որևէ ջնջում տեղի ունենար (հարցերի դեպքում):
SQL> ստեղծել աղյուսակ alan.names_backup որպես անուններից ընտրված *; Աղյուսակ ստեղծվեց: