Oracle– ში დუბლიკატი ჩანაწერების წაშლის 4 გზა

Სარჩევი:

Oracle– ში დუბლიკატი ჩანაწერების წაშლის 4 გზა
Oracle– ში დუბლიკატი ჩანაწერების წაშლის 4 გზა

ვიდეო: Oracle– ში დუბლიკატი ჩანაწერების წაშლის 4 გზა

ვიდეო: Oracle– ში დუბლიკატი ჩანაწერების წაშლის 4 გზა
ვიდეო: კახი კალაძე დატროლეს 😀🤣🤣 2024, მაისი
Anonim

Oracle– ში მუშაობისას შეიძლება აღმოაჩინოთ, რომ თქვენს ზოგიერთ ჩანაწერს აქვს დუბლიკატი. თქვენ შეგიძლიათ წაშალოთ ეს დუბლიკატი რიგები მათი იდენტიფიკაციით და მისი RowID, ან მწკრივის მისამართის გამოყენებით. სანამ დაიწყებთ, თქვენ უნდა შექმნათ სარეზერვო ცხრილი იმ შემთხვევაში, თუ თქვენ გჭირდებათ მათი მითითება ჩანაწერების წაშლის შემდეგ.

ნაბიჯები

მეთოდი 1 -დან 4: თქვენი დუბლიკატის იდენტიფიცირება

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 1
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 1

ნაბიჯი 1. იდენტიფიცირება დუბლიკატი

ამ შემთხვევაში, განსაზღვრეთ დუბლიკატის მაგალითი, "ალანი". დარწმუნდით, რომ ჩანაწერები, რომელთა წაშლასაც ცდილობთ, რეალურად დუბლიკატია SQL ქვემოთ შეყვანის გზით.

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 2
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 2

ნაბიჯი 2. იდენტიფიცირება სვეტიდან სახელწოდებით "სახელები

"სვეტის მაგალითზე, სახელწოდებით" სახელები ", თქვენ შეცვლით" სვეტის_სახელს "სახელებით.

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 3
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 3

ნაბიჯი 3. სხვა სვეტების იდენტიფიცირება

თუ თქვენ ცდილობთ დუბლიკატის იდენტიფიცირებას სხვა სვეტით, მაგალითად ალანის ასაკი და არა მისი სახელი, თქვენ შეიყვანთ "საუკუნეებს" "სვეტის_სახელის" ადგილას და ა.

აირჩიეთ სვეტის_სახელი, რაოდენობა (სვეტის_სახელი) ცხრილის ჯგუფიდან სვეტი_სახელით, რომელსაც აქვს რაოდენობა (სვეტის_სახელი)> 1;

მეთოდი 2 დან 4: წაშლა ერთი დუბლიკატი

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 4
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 4

ნაბიჯი 1. აირჩიეთ "სახელი სახელებიდან

"SQL" - ის შემდეგ, რაც ნიშნავს სტანდარტული შეკითხვის ენას, შეიყვანეთ "აირჩიეთ სახელი სახელებიდან."

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 5
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 5

ნაბიჯი 2. წაშალეთ ყველა სტრიქონი დუბლიკატი სახელით

"SQL" - ის შემდეგ, შეიყვანეთ "წაშალეთ სახელებიდან, სადაც სახელი =" ალანი ";." გაითვალისწინეთ, რომ აქ კაპიტალიზაცია მნიშვნელოვანია, ამიტომ ეს წაშლის ყველა რიგს სახელწოდებით "ალანი". "SQL" - ის შემდეგ, შეიყვანეთ "commit".

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 6
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 6

ნაბიჯი 3. დაიქირავეთ რიგი დუბლიკატის გარეშე

ახლა, როდესაც თქვენ წაშალეთ ყველა სტრიქონი სახელის მაგალითით "ალანი", შეგიძლიათ ჩაწეროთ ერთი უკან ჩასვით "ჩასვით სახელის მნიშვნელობებში (" ალანი ";." "SQL" - ის შემდეგ, შეიყვანეთ "commit" თქვენი ახალი რიგის შესაქმნელად.

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 7
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 7

ნაბიჯი 4. იხილეთ თქვენი ახალი სია

მას შემდეგ რაც დაასრულებთ ზემოაღნიშნულ ნაბიჯებს, შეგიძლიათ შეამოწმოთ რომ დარწმუნდეთ რომ აღარ გაქვთ დუბლიკატი ჩანაწერით "აირჩიეთ * სახელებიდან".

SQL> აირჩიეთ სახელებიდან სახელი; სახელი ------------------------------ ალან კერი ტომ ალანი რიგები არჩეულია. SQL> წაშლა სახელებიდან, სადაც name = 'ალანი'; რიგები წაიშალა. SQL> ჩაიდინოს; ვალდებულება დასრულებულია. SQL> ჩასვით სახელების მნიშვნელობები ('ალანი'); რიგი შეიქმნა. SQL> ჩაიდინოს; ვალდებულება დასრულებულია. SQL> აირჩიეთ * სახელებიდან; სახელი ------------------------------ ალან კერი ტომ რიგები არჩეულია.

მეთოდი 3 დან 4: წაშლა მრავალი დუბლიკატი

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 8
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 8

ნაბიჯი 1. აირჩიეთ RowID, რომლის წაშლაც გსურთ

"SQL" - ის შემდეგ, შეიყვანეთ "აირჩიეთ rowid, სახელი სახელებიდან;".

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 9
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 9

ნაბიჯი 2. წაშლა დუბლიკატი

"SQL" - ის შემდეგ შეიყვანეთ "წაშალეთ სახელებიდან a rowid> (აირჩიეთ min (rowid) იმ სახელებიდან b სადაც b.name = a.name);" დუბლიკატი ჩანაწერების წაშლა.

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 10
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 10

ნაბიჯი 3. შეამოწმეთ დუბლიკატი

ყოველივე ზემოაღნიშნულის დასრულების შემდეგ, ბრძანებები ამოწმებენ, გაქვთ თუ არა ჯერ კიდევ დუბლიკატი ჩანაწერები "აირჩიეთ rowid, name from names;" და შემდეგ "ჩადენა".

SQL> აირჩიეთ rowid, სახელი სახელებიდან; ROWID სახელი ------------------------------------------------------ AABJnsAAGAAAdfOAAA ალან AABJnsAAGAAAdfOAAB ალან AABJnsAAGAAAdfOAAC კერი AABJnsAAGAAdfOAAD ტომ AABJnsAAGAAdfOAAF ალანის რიგები არჩეულია. SQL> სახელებიდან წაშლა a rowid> (აირჩიეთ min (rowid) იმ სახელებიდან b სადაც b.name = a.name); რიგები წაიშალა. SQL> აირჩიეთ rowid, სახელი სახელებიდან; სწორი სახელი ------------------------------------------------------ AABJnsAAGAAAdfOAAA ალან AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD ტომ რიგები არჩეულია. SQL> ჩაიდინოს; ვალდებულება დასრულებულია.

მეთოდი 4 დან 4: სვეტების წაშლა სვეტებით

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 11
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 11

ნაბიჯი 1. აირჩიეთ თქვენი რიგები

"SQL" - ის შემდეგ, შეიყვანეთ "აირჩიეთ * სახელებიდან;" შენი რიგების სანახავად.

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 12
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 12

ნაბიჯი 2. წაშლა დუბლიკატი რიგები მათი სვეტის იდენტიფიკაციით

"SQL" - ის შემდეგ "შეიყვანეთ" წაშალეთ სახელებიდან a rowid> (აირჩიეთ min (rowid) იმ სახელებიდან b სადაც b.name = a.name და b.age = a.age); " წაშლა დუბლიკატი ჩანაწერები.

წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 13
წაშალეთ დუბლიკატი ჩანაწერები Oracle– ში ნაბიჯი 13

ნაბიჯი 3. შეამოწმეთ დუბლიკატი

მას შემდეგ რაც დაასრულებთ ზემოაღნიშნულ ნაბიჯებს, შეიყვანეთ "აირჩიეთ * სახელებიდან;" და შემდეგ "ჩაიდინეთ" რათა შეამოწმოთ წარმატებით წაშალეთ დუბლიკატი ჩანაწერები.

SQL> აირჩიეთ * სახელებიდან; დასახელება ასაკი -------------------------------------------- ალან 50 კერი 51 ტომ 52 ალანი 50 რიგები არჩეულია. SQL> სახელებიდან წაშლა a rowid> (აირჩიეთ min (rowid) სახელებიდან b სადაც b.name = a.name და b.age = a.age); მწკრივი წაიშალა. SQL> აირჩიეთ * სახელებიდან; NAME AGE ---------------------------------------------- ალან 50 კერი 51 ტომ 52 რიგები არჩეულია რა SQL> ჩაიდინოს; ვალდებულება დასრულებულია.

გაფრთხილებები

  • შექმენით სარეზერვო ცხრილი თქვენს სისტემაში შესასვლელად, რომლითაც შეგიძლიათ ნახოთ რა იყო წაშლის წინ (კითხვების არსებობის შემთხვევაში).

    SQL> შექმენით ცხრილი alan.names_backup როგორც აირჩიეთ * სახელებიდან; მაგიდა შეიქმნა.

გირჩევთ: