Кіріспе

SQL-де TRUNCATE TABLE командасы – деректерді басқару тілінің (DML) операциясы болып табылады, ол триггерлік әрекетті тудырмай, кестедегі барлық қатарларды жояды. Бұл операцияның нәтижесі кестедегі барлық деректерді жылдам жоюға мүмкіндік береді, әдетте, тұтастықты сақтау механизмдерінің бірнешеуін айналып өтеді. Бұл команда SQL:2008 стандартында ресми түрде енгізілген, F200 – «TRUNCATE TABLE statement» деген опциялық мүмкіндік ретінде. TRUNCATE TABLE кестеден барлық қатарларды жояды, бірақ кесте құрылымы, оның бағандары, шектеулері, индекстері және т.б. сақталады. Кесте анықтамасын деректерімен бірге жою үшін DROP TABLE командасын пайдаланыңыз. TRUNCATE TABLE mytable командасы логикалық тұрғыдан (физикалық тұрғыдан емес) WHERE шартсыз DELETE FROM mytable командасына тең. TRUNCATE TABLE мен DELETE командаларын келесі ерекшеліктер ажыратады: Oracle деректер базасында TRUNCATE командасынан бұрын және кейін автоматты түрде коммит операциясы орындалады. (Бұл MySQL-де де транзакциялық сақтау қозғалтқышы қолданылғанда болуы мүмкін.) Әдетте, TRUNCATE TABLE кестеде пайдаланылатын дерек беттерін босату арқылы кестедегі барлық жазбаларды жылдам жояды. Бұл жоюларды тіркеуге жұмсалатын ресурстарды, сондай-ақ қолданылатын құлыптардың санын азайтады. Осылай жойылған жазбаларды кері қайтару операциясы арқылы қалпына келтіру мүмкін емес. Бұл ережеден екі ерекше жағдай бар: PostgreSQL және Microsoft SQL Server жүйелерінде TRUNCATE TABLE командаларын транзакциялық түрде орындауға немесе кері қайтаруға болады. TRUNCATE TABLE командасында WHERE шартты көрсету мүмкін емес. TRUNCATE TABLE командасын шеткі кілт арқылы қысқартылатын кестеге сілтеме жасалғанда қолдануға болмайды, себебі TRUNCATE TABLE командалары триггерлерді іске қоспайды. Бұл деректердің сәйкессіздігіне алып келуі мүмкін, өйткені ON DELETE/ON UPDATE триггерлері іске қосылмайды. Кейбір компьютерлік жүйелерде TRUNCATE TABLE командасы Identity бағанының санауын бастапқы мәніне қайтарады. Microsoft SQL Server 2000 және одан кейінгі нұсқаларында толық қалпына келтіру режимінде деректер базасындағы барлық өзгерістер тіркеледі, сондықтан TRUNCATE TABLE командаларын журналдық жіберуге қатысты кестелер үшін қолдануға болады.