Vs Truncate-ni tashlang

Drop and Truncate - bu ma'lumotlar bazasidan ma'lumotlar yozuvlarini o'chirib tashlamoqchi bo'lgan ikkita SQL (Strukturali so'rovlar tili). Drop va Truncate ikkala so'rovi jadvaldagi barcha ma'lumotlarni va tegishli SQL-ni olib tashlaydi. Bu holatda o'chirish jarayoni samarali emas, chunki u Drop va Truncate-ga qaraganda ko'proq saqlash joylaridan foydalanadi.

Agar biz ma'lumotlar bazasidagi jadvalni barcha ma'lumotlari bilan birga o'chirib tashlamoqchi bo'lsak, SQL buni Drop buyrug'i yordamida osongina bajarishga imkon beradi. Drop buyrug'i DDL (Data Definition Language) buyrug'idir va undan mavjud ma'lumotlar bazasi, jadval, indeks yoki ko'rinishni yo'q qilish uchun foydalanish mumkin. Jadvaldagi barcha ma'lumotlarni, shuningdek ma'lumotlar bazasidan jadval tuzilishini yo'q qiladi. Bundan tashqari, biz jadvaldagi barcha ma'lumotlarni shunchaki, ammo jadvalsiz o'chirib tashlashni xohlashimiz mumkin va biz bunday stsenariyda SQL-da Truncate bayonotidan foydalanishimiz mumkin. Truncate shuningdek DDL buyrug'idir va u jadvaldagi barcha qatorlarni yo'q qiladi, ammo kelajakda foydalanish uchun jadval ta'rifini bir xil saqlab qoladi.

Drop buyrug'i

Yuqorida aytib o'tilganidek, Drop buyrug'i ushbu jadvalda yaratilgan jadval ta'rifi va uning barcha ma'lumotlari, yaxlitlik cheklovlari, indekslar, triggerlar va kirish imtiyozlarini olib tashlaydi. Shunday qilib, u mavjud ob'ektni ma'lumotlar bazasidan butunlay chiqarib tashlaydi va boshqa jadvallar bilan aloqalar ham buyruq bajarilgandan so'ng o'z kuchini yo'qotadi. Shuningdek, u jadval haqidagi barcha ma'lumotlarni ma'lumotlar lug'atidan olib tashlaydi. Quyidagi jadvalda Drop gapini ishlatish uchun odatiy sintaksis.

QURILMA JARAYONI

Biz bazadan olib tashlamoqchi bo'lgan jadval nomini shunchaki Drop buyrug'ining namunasida o'zgartirishimiz kerak.

Shuni ta'kidlash kerakki, Drop buyrug'i allaqachon tashqi kalit cheklovchisi tomonidan murojaat qilingan jadvalni yo'q qilish uchun ishlatilishi mumkin emas. Bunday holda, havolani keltiruvchi tashqi kalit cheklovi yoki aniq jadvalni birinchi bo'lib tashlash kerak. Shuningdek, Drop bayonotini ma'lumotlar bazasidagi tizim jadvallarida qo'llash mumkin emas.

Drop buyrug'i avtoulovni topshirish buyrug'i bo'lganligi sababli, ishga tushirilgandan keyin bajarilgan operatsiya orqaga qaytarilmaydi va hech qanday ishga tushirilmaydi. Jadval tushirilganda, jadvalga qilingan barcha havolalar haqiqiy bo'lmaydi va shuning uchun agar biz jadvalni yana ishlatmoqchi bo'lsak, uni butun yaxlitlik va kirish imtiyozlari bilan qayta yaratish kerak. Boshqa jadvallar bilan aloqalar, shuningdek, yana joylashtirilishi kerak.

Kesish buyrug'i

Truncate buyrug'i DDL buyrug'idir va u jadvaldagi barcha satrlarni foydalanuvchi tomonidan belgilanmagan holda olib tashlaydi va jadval foydalanadigan bo'sh joyni bo'shatadi, lekin ustunlar, indekslar va cheklovlar bilan jadval tuzilishi bir xil bo'lib qoladi. Truncate jadval jadvalidagi ma'lumotlarni saqlash uchun ishlatiladigan ma'lumot sahifalarini ajratish orqali jadvaldan ma'lumotlarni yo'q qiladi va faqat ushbu sahifani taqsimlash bitimlar jurnalida saqlanadi. Shuning uchun u boshqa o'xshash SQL buyruqlari bilan taqqoslaganda o'chirish jurnallari va tizim resurslaridan kamroq foydalanadi. Shunday qilib, Truncate boshqalarga qaraganda biroz tezroq bayon. Quyida Truncate buyrug'i uchun odatiy sintaksis mavjud.

TADBIRKOR Jadval

Yuqoridagi sintaksisda biz barcha ma'lumotlarni olib tashlamoqchi bo'lgan jadval nomini almashtirishimiz kerak.

Chet el kaliti cheklovi bilan murojaat qilingan jadvalda kesishlarni ishlatib bo'lmaydi. U bajarilishidan oldin avtomatik ravishda majburiyatni ishlatadi, so'ngra boshqa majburiyatni bajaradi, shuning uchun tranzaktsiyani orqaga qaytarib bo'lmaydi va hech qanday qo'zg'atuvchi ishga tushirilmaydi. Agar biz jadvalni qayta ishlatmoqchi bo'lsak, faqat ma'lumotlar bazasidagi mavjud jadval ta'rifiga kirishimiz kerak.

Drop va Truncate o'rtasidagi farq nima?

Ikkala Drop va Truncate buyruqlari DDL buyruqlaridir, shuningdek avtomatik buyruqlar, shuning uchun ushbu buyruqlar yordamida bajarilgan operatsiyalar orqaga qaytarilmaydi.

Drop va Truncate o'rtasidagi asosiy farq shundaki, Drop buyrug'i nafaqat jadvaldagi barcha ma'lumotlarni o'chiradi, balki jadval tuzilishini barcha ma'lumotlarga ega bo'lgan ma'lumotlar bazasidan doimiy ravishda olib tashlaydi, Truncate buyrug'i esa faqat jadvaldagi barcha satrlarni olib tashlaydi. , va u jadval tuzilishini va murojaatlarni saqlab qoladi.

Agar jadval tushirilsa, boshqa jadvallar bilan aloqalar endi haqiqiy emas va yaxlitlik va kirish imtiyozlari olib tashlanadi. Shunday qilib, agar jadvalni qayta ishlatish talab etilsa, aloqalar, yaxlitlik cheklovlari, shuningdek foydalanish imtiyozlari bilan qayta qurish kerak. Ammo, agar stol kesilgan bo'lsa, stol tuzilishi va uning cheklovlari kelajakda foydalanish uchun qoladi va shuning uchun yuqoridagi hordiq chiqarishlardan qayta foydalanish uchun talab qilinmaydi.

Ushbu buyruqlar qo'llanilganda biz ulardan foydalanishda ehtiyot bo'lishimiz kerak. Bundan tashqari, biz ushbu buyruqlarning mohiyatini, ularning qanday ishlashini va shuningdek, etishmayotgan asosiy narsalarning oldini olish uchun ularni ishlatishdan oldin puxta rejalashtirishni yaxshiroq bilib olishimiz kerak. Va nihoyat, ushbu ikkala buyruq ham bazalarni tez va oson tozalash uchun ishlatilishi mumkin, kam resurslarni sarflaydi.