Drop vs Truncate

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

იმ შემთხვევაში, თუ ჩვენ გვინდა, რომ მონაცემთა ბაზაში ცხრილი ჩამოვიშალოთ მის ყველა მონაცემთან ერთად, SQL საშუალებას გვაძლევს მარტივად შეასრულოთ ეს Drop განცხადების გამოყენებით. Drop ბრძანება არის DDL (მონაცემთა განსაზღვრის ენა) ბრძანება და მისი გამოყენება შეგიძლიათ გამოიყენოთ არსებული მონაცემთა ბაზის, ცხრილის, ინდექსის ან ნახვის განადგურება. ის წაშლის მთელ ინფორმაციას ცხრილში, ასევე ცხრილის სტრუქტურას მონაცემთა ბაზიდან. ასევე, შეიძლება გვსურს, რომ ცხრილში ყველა მონაცემი მოვიშოროთ ცხრილში, მაგრამ ცხრილის გარეშე, და ასეთ სცენარში შეგვიძლია გამოვიყენოთ Truncate განცხადება SQL– ში. Truncate ასევე არის DDL ბრძანება და ის გამორიცხავს ყველა მწკრივებს ცხრილში, მაგრამ ინარჩუნებს ცხრილის განმარტებას იგივე მომავალი გამოყენებისთვის.

ჩამოაგდეს ბრძანება

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

ჩამოაგდეს მაგიდა

ჩვენ უბრალოდ უნდა შევცვალოთ ცხრილის სახელი, რომლის ამოღებაც გვინდა მონაცემთა ბაზიდან, Drop ბრძანების ზემოთ მოცემულ მაგალითში.

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

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

დავალების ბრძანება

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

TRUNCATE მაგიდა

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

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

რა განსხვავებაა Drop- სა და Truncate- ს შორის?

ორივე Drop და Truncate ბრძანებები არის DDL ბრძანებები და ასევე ავტომატური ჩადენის განცხადებები, ამიტომ ამ ბრძანებების გამოყენებით შესრულებული ტრანზაქციების უკან დაბრუნება შეუძლებელია.

Drop- სა და Truncate- ს შორის მთავარი განსხვავება ისაა, რომ Drop ბრძანება ხსნის არა მხოლოდ ცხრილში მოცემულ ყველა მონაცემს, არამედ ის ცხრილის სტრუქტურას მუდმივად აშორებს მონაცემთა ბაზიდან ყველა ცნობას, ხოლო Truncate ბრძანება მხოლოდ ყველა მწკრივს ამოიღებს ცხრილში. და იგი ინახავს ცხრილის სტრუქტურას და მის მითითებებს.

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

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