Vurmaq və kəsmək

Drop and Truncate - verilənlər bazasından məlumat qeydlərini silmək istədiyimiz verilənlər bazası idarəetmə sistemlərində istifadə olunan iki SQL (Strukturlaşdırılmış sorğu dili) ifadələridir. İstər Drop, həm də Kəsmə ifadələri cədvəldəki bütün məlumatları və əlaqəli SQL ifadəsini çıxarır. Silinmə əməliyyatı bu vəziyyətdə təsirli deyil, çünki Drop və Truncate-dan daha çox saxlama yerləri istifadə edir.

Bir verilənlər bazasındakı bir masanı bütün məlumatları ilə birlikdə ləğv etmək istəyiriksə, SQL bunu Drop bəyanatından istifadə edərək asanlıqla yerinə yetirməyə imkan verir. Drop əmri bir DDL (Data Definition Language) əmridir və mövcud verilənlər bazası, cədvəl, indeks və ya görünüşü məhv etmək üçün istifadə edilə bilər. Bütün məlumatları bir cədvəldə, həmçinin masa quruluşunu verilənlər bazasından silir. Ayrıca, bir cədvəldəki bütün məlumatları sadəcə, lakin cədvəl olmadan qurtarmaq istəyə bilərik və Ssenaridə Truncate ifadəsini belə bir ssenaridə istifadə edə bilərik. Truncate də bir DDL əmridir və bir cədvəldəki bütün satırları ləğv edir, lakin gələcəkdə istifadə üçün eyni şəkildə cədvəl tərifini saxlayır.

Düşmə əmri

Daha əvvəl qeyd edildiyi kimi, Drop əmri, həmin masada yaradılan masa tərifini və bütün məlumatları, bütövlüyün məhdudiyyətlərini, indeksləri, tetikleyiciləri və giriş imtiyazlarını silir. Beləliklə, mövcud obyekti tamamilə verilənlər bazasından salır və digər cədvəllərlə əlaqələr də əmri icra etdikdən sonra etibarlı olmayacaqdır. Ayrıca masa haqqında bütün məlumatları məlumat lüğətindən çıxardır. Aşağıdakı bir masada Drop ifadəsini istifadə etmək üçün tipik sintaksisdir.

CƏDVƏLİ YAXIN

Drop əmrindəki yuxarıdakı nümunələrdə verilənlər bazasından silmək istədiyimiz cədvəl adını sadəcə əvəz etməliyik.

Buraxılış ifadəsinin xarici açar məhdudiyyəti ilə istinad edilmiş bir cədvəlin silmək üçün istifadə edilə bilməyəcəyinə işarə etmək lazımdır. Bu halda, istinad xarici açar məhdudiyyət və ya müəyyən bir cədvəl əvvəlcə endirilməlidir. Ayrıca, Drop bəyanatı verilənlər bazasındakı sistem masalarına tətbiq edilə bilməz.

Drop əmri avtomatik törətmə ifadəsi olduğundan, bir dəfə atılan əməliyyat geri yuvarlana bilməz və heç bir tetikleyici işə salınmayacaq. Bir masa düşdükdə, cədvəldəki bütün istinadlar etibarlı olmayacaq və beləliklə, cədvəldən yenidən istifadə etmək istəsək, bütün bütövlük məhdudiyyətləri və giriş imtiyazları ilə yenidən qurulmalıyıq. Digər masalarla əlaqələrin hamısı yenidən yerləşməlidir.

Kəsmə əmri

Truncate əmri bir DDL əmridir və istifadəçi tərəfindən göstərilən şərtlər olmadan bir cədvəldəki bütün satırları çıxarır və masanın istifadə etdiyi boşluğu buraxır, lakin sütunları, indeksləri və məhdudiyyətləri ilə masa quruluşu eyni qalır. Truncate, cədvəl məlumatlarını saxlamaq üçün istifadə olunan məlumat səhifələrini bölüşdürərək bir cədvəldəki məlumatları aradan qaldırır və əməliyyat səhifəsində yalnız bu səhifə ayırmaları saxlanılır. Beləliklə, Sil kimi digər əlaqəli SQL əmrləri ilə müqayisədə daha az əməliyyat log mənbələri və sistem mənbələrindən istifadə edir. Beləliklə, Truncate başqalarına nisbətən bir az daha sürətli bir ifadədir. Aşağıdakı, Truncate əmri üçün tipik sintaksisdir.

TƏCİLİ CƏDVƏL

Bütün məlumatları silmək istədiyimiz cədvəl adını yuxarıdakı sintaksisdə əvəz etməliyik.

Kəsmə xarici açar məhdudiyyəti ilə istinad edilmiş bir masada istifadə edilə bilməz. Bu hərəkət etməzdən əvvəl avtomatik olaraq bir öhdəlik istifadə edir və sonradan başqa bir öhdəlik istifadə olunur, buna görə əməliyyatın geri qaytarılması mümkün deyil və heç bir tetikleyici işə salınmır. Cədvəldən yenidən istifadə etmək istəyirsinizsə, verilənlər bazasında mövcud cədvəl tərifinə daxil olmaq lazımdır.

Drop və Truncate arasındakı fərq nədir?

Həm Drop, həm də Çıxartma əmrləri DDL əmrləridir və bu əmrlərdən istifadə etməklə həyata keçirilən əməliyyatlar geri qaytarıla bilmədiyi üçün avtomatik tərtib edilmiş ifadələrdir.

Drop və Truncate arasındakı əsas fərq Drop əmri yalnız bir cədvəldəki bütün məlumatları deyil, eyni zamanda masa quruluşunu bütün istinadlarla daimi olaraq verilənlər bazasından çıxarır, Truncate əmri yalnız bir cədvəldəki bütün sətirləri silir. , və masa quruluşunu və istinadlarını qoruyur.

Bir cədvəl düşsə, digər cədvəllərlə münasibətlər etibarlı olmayacaq və bütövlük məhdudiyyətləri və giriş imtiyazları da aradan qaldırılacaqdır. Buna görə cədvəlin təkrar istifadəsi tələb olunarsa, münasibətlər, bütövlük məhdudiyyətləri, həmçinin giriş imtiyazları ilə yenidən qurulmalıdır. Ancaq bir masa kəsilmişsə, masa quruluşu və məhdudiyyətləri gələcək istifadə üçün qalır və buna görə təkrar istifadə üçün yuxarıda göstərilən istirahətlərdən heç biri tələb olunmur.

Bu əmrlər tətbiq edildikdə onlardan istifadə etmək üçün ehtiyatlı olmalıyıq. Ayrıca, bu əmrlərin mahiyyəti, necə işlədikləri və əskiksiz əskiklərin qarşısını almaq üçün onlardan istifadə etməzdən əvvəl bir qədər diqqətlə planlaşdırmağımızı daha yaxşı başa düşməliyik. Nəhayət, bu əmrlərin hər ikisi verilənlər bazasını tez və asanlıqla təmizləmək üçün istifadə edilə bilər.