Drop vs Truncate

Drop و Truncate دو عبارت SQL (Structured Query Language) هستند که در سیستم های مدیریت پایگاه داده استفاده می شوند ، جایی که ما می خواهیم سوابق داده را از یک پایگاه داده حذف کنیم. هر دو عبارت Drop و Truncate کل داده ها را در یک جدول و عبارت SQL مربوطه حذف می کنند. عملیات حذف در این حالت موثر نیست زیرا از فضای ذخیره سازی بیشتری نسبت به Drop و Truncate استفاده می کند.

در صورت ، اگر می خواهیم یک جدول در یک بانک اطلاعاتی را با تمام داده های آن کنار بگذاریم ، SQL به ما اجازه می دهد تا با استفاده از دستور Drop به راحتی این کار را انجام دهیم. Drop command یک دستور DDL (Data Definition Language) است و می توان از آن برای از بین بردن یک پایگاه داده ، جدول ، فهرست یا نمای موجود استفاده کرد. این کل اطلاعات را در یک جدول و همچنین ساختار جدول از پایگاه داده حذف می کند. همچنین ، ممکن است بخواهیم به راحتی ، اما بدون جدول از همه داده ها خلاص شویم و در چنین سناریویی بتوانیم از عبارت Truncate در SQL استفاده کنیم. Truncate همچنین یک دستور DDL است و تمام سطرها را در یک جدول از بین می برد اما تعریف جدول را برای استفاده بعدی حفظ می کند.

رها کردن فرمان

همانطور که قبلاً ذکر شد ، دستور Drop تعریف جدول و کلیه داده های آن ، محدودیت های یکپارچگی ، ایندکس ها ، محرک ها و امتیازات دسترسی را حذف می کند ، که در این جدول خاص ایجاد شده است. بنابراین شیء موجود را از پایگاه داده به طور کامل رها می کند ، و روابط با جداول دیگر نیز پس از اجرای دستور دیگر اعتبار نخواهد داشت. همچنین تمام اطلاعات مربوط به جدول را از فرهنگ لغت داده حذف می کند. در زیر نحوی معمولی برای استفاده از عبارت Drop در یک جدول است.

جدول افتاده

ما باید در جدول مثال بالا دستور Drop نام جدول را که می خواهیم از پایگاه داده حذف کنیم ، جایگزین کنیم.

ذکر این نکته حائز اهمیت است که عبارت Drop را نمی توان برای حذف یک جدول که قبلاً توسط یک محدودیت کلید خارجی ارجاع شده است ، استفاده کرد. در این حالت ، ابتدا محدودیت های مربوط به کلید خارجی یا آن جدول خاص باید کاهش یابد. همچنین ، عبارت Drop را نمی توان در جداول سیستم موجود در پایگاه داده اعمال کرد.

از آنجا که فرمان Drop یک بیانیه تعهد خودکار است ، عملیاتی که یک بار از کار برداشته شود قابل برگشت نیست و هیچ محرکی از کار اخراج نمی شود. هنگامی که یک جدول ریخته می شود ، تمام منابع موجود در جدول معتبر نخواهد بود و بنابراین ، اگر بخواهیم دوباره از جدول استفاده کنیم ، باید با تمام محدودیت های یکپارچگی و امتیازات دسترسی مجدداً بازسازی شود. همه روابط با جداول دیگر نیز باید مجدداً مستقر شوند.

دستور کوتاه

دستور truncate یک دستور DDL است و تمام سطرها را در یک جدول بدون هیچگونه شرایط مشخص شده توسط کاربر حذف می کند و فضای مورد استفاده در جدول را آزاد می کند ، اما ساختار جدول با ستون ها ، ایندکس ها و محدودیت های آن یکسان است. Truncate با جدا کردن صفحات داده مورد استفاده برای ذخیره داده های جدول ، داده ها را از یک جدول حذف می کند و فقط این جابجایی صفحه در سیاهه معاملات انجام می شود. بنابراین در مقایسه با سایر دستورات مربوط به SQL مانند حذف از منابع ورود به سیستم معامله و منابع سیستم کمتر استفاده می کند. بنابراین Truncate بیانیه کمی سریعتر از دیگران است. در زیر نحو معمولی برای دستور Truncate است.

جدول TRUNCATE

ما باید در جدول نحوی ، نام جدول را که می خواهیم کل داده ها را حذف کنیم ، جایگزین کنیم.

از truncate در جداول قابل استفاده در محدودیت کلید خارجی استفاده نمی شود. قبل از اقدام به صورت خودکار از تعهدی استفاده می کند و تعهدی دیگر پس از آن اعمال می شود ، بنابراین بازپرداخت معامله غیرممکن است و هیچ محرکی از کار اخراج نمی شود. اگر می خواهیم از جدول استفاده مجدد کنیم ، فقط نیاز به تعریف جدول موجود در دیتابیس داریم.

تفاوت Drop با Truncate در چیست؟

هر دو دستور Drop و Truncate دستورات DDL هستند و همچنین بیانیه های تعهد خودکار را انجام می دهند بنابراین معاملات انجام شده با استفاده از این دستورات را نمی توان به عقب برگرداند.

تفاوت اصلی بین Drop و Truncate در این است که دستور Drop ، نه تنها تمام داده های یک جدول را حذف می کند ، بلکه ساختار جدول را به طور دائم از بانک اطلاعاتی با تمام منابع حذف می کند ، در حالی که دستور Truncate فقط تمام ردیف ها را در یک جدول حذف می کند. ، و ساختار جدول و منابع آن را حفظ می کند.

در صورت افتادن جدول ، روابط با سایر جداول دیگر معتبر نخواهد بود و محدودیت های یکپارچگی و امتیازات دسترسی نیز حذف می شوند. بنابراین اگر برای استفاده مجدد از جدول مورد نیاز است ، باید با روابط ، محدودیت های یکپارچگی و همچنین امتیازات دسترسی بازسازی شود. اما اگر یک جدول کوتاه باشد ، ساختار جدول و محدودیت های آن برای استفاده بعدی باقی می ماند و بنابراین ، برای استفاده مجدد از هر یک از تفریحات فوق الزامی نیست.

وقتی این دستورات اعمال می شوند ، باید در استفاده از آنها احتیاط کنیم. همچنین ، ما باید درک بهتری از ماهیت این دستورات ، نحوه عملکرد آنها و همچنین برنامه ریزی دقیق قبل از استفاده از آنها داشته باشیم تا از مضرات ضروری جلوگیری شود. سرانجام ، هر دو این دستورالعمل را می توان برای تمیز کردن سریع پایگاه داده ها با استفاده از منابع کمتری ، استفاده کرد.