Тарк против Трунч

Drop and Truncate - ин ду изҳороти SQL (Structured Query Language) мебошанд, ки дар Системаи идоракунии пойгоҳи додаҳо истифода мешаванд ва мо мехоҳем сабтҳои додаҳоро аз пойгоҳи додаҳо дур кунем. Ҳарду Drop ва Truncate тамоми маълумоти дар ҷадвал ва баёнияи SQL алоқамандро хориҷ мекунанд. Амал несткунӣ дар ин ҳолат муассир нест, зеро он назар ба Drop ва Truncate фазои нигоҳдории бештарро истифода мебарад.

Дар ҳолате, ки агар мо мехоҳем, ки як ҷадвалро дар базаи маълумот бо тамоми маълумоташ партоем, SQL ба мо имконият медиҳад, ки инро бо истифодаи баёнияи Drop ба осонӣ иҷро кунем. Фармони Drop фармони DDL (Data Definition Language) аст ва он метавонад барои нест кардани пойгоҳи мавҷуда, ҷадвал, индекс ё ​​намоиш истифода шавад. Он тамоми иттилоотро дар ҷадвал, инчунин сохтори ҷадвалро аз пойгоҳи додаҳо нест мекунад. Инчунин, мо метавонем орзу кунем, ки ҳама маълумотҳои дар ҷадвал мавҷудбударо нест кунем, ва бидуни ҷадвал мо метавонем дар ин сенария Truncate-ро дар SQL истифода барем. Truncate инчунин фармони DDL мебошад ва он ҳамаи сатрҳоро дар ҷадвал барҳам медиҳад, вале таърифи ҷадвалро барои истифодаи оянда нигоҳ медорад.

Фармони тарки

Тавре ки дар боло қайд карда шуд, фармони Drop таърифи ҷадвал ва ҳама маълумоти онро, маҳдудиятҳои яклухтӣ, индексатсияҳо, триггерҳо ва имтиёзҳои дастрасиро, ки дар он ҷадвал сохта шудааст, нест мекунад. Ҳамин тавр, он объектҳои мавҷудбударо аз пойгоҳи додаҳо пурра раҳо мекунад ва муносибатҳо бо ҷадвалҳои дигар низ пас аз иҷрои фармоиш дигар эътибор надоранд. Инчунин он тамоми маълумоти ҷадвалро аз луғати маълумот хориҷ мекунад. Дар зер синтаксиси маъмул барои истифодаи баёнияи Drop мавҷуд аст.

Ҷадвали қатрон

Мо бояд танҳо номи ҷадвалро иваз кунем, ки мо аз пойгоҳи додаҳо дар фармони болотарини Drop фарқ кардан мехоҳем.

Бояд қайд кард, ки Изҳори Drop наметавонад барои нест кардани ҷадвал истифода шавад, ки онро аллакай маҳдудияти калиди хориҷӣ ишора карда буд. Дар ин ҳолат, маҳдудияти калиди хориҷӣ ё ин ҷадвалро аввал бояд партофт. Инчунин, баёнияи Drop дар ҷадвалҳои системавӣ дар пойгоҳи додаҳо истифода намешавад.

Азбаски фармони Drop як баёнияи худкор мебошад, амалиёт пас аз партофта карда намешавад ва ҳеҷ триггерҳо кушода нахоҳад шуд. Вақте, ки ҷадвал партофта мешавад, ҳама истинодҳои ҷадвал эътибор надоранд ва аз ин рӯ, агар мо мехоҳем ҷадвалро дубора истифода барем, он бояд бо тамоми маҳдудиятҳои тамомият ва имтиёзҳои дастрасӣ сохта шавад. Тамоми муносибатҳо бо мизҳои дигар, инчунин бояд боз ҷойгир карда шавад.

Фармонро кӯр кунед

Фармони Truncate фармони DDL мебошад ва он ҳамаи сатрҳоро дар ҷадвал бидуни шартҳои муайяншудаи корбар хориҷ мекунад ва фазои истифодашударо дар ҷадвал раҳо мекунад, аммо сохтори ҷадвал бо сутунҳо, индексатсияҳо ва маҳдудиятҳо боқӣ мемонад. Truncate маълумотро аз ҷадвал бо ҷудокунии сафҳаҳои додаҳо, ки барои нигоҳ доштани маълумотҳои ҷадвал истифода мешаванд, нест мекунад ва танҳо ин тақсимоти сафҳаҳо дар дафтари амалиёт нигоҳ дошта мешаванд. Ҳамин тавр, он дар муқоиса бо дигар фармонҳои марбут ба SQL, ба мисли Нобуд кардани захираҳои сабти транзаксия ва система камтар истифода мешавад. Пас Truncate як изҳороти каме зудтар аз дигарон аст. Дар зер синтаксиси маъмул барои фармони Truncate аст.

ТАБРИКИ ТАВАЛЛУД

Мо бояд номи ҷадвалро иваз намоем, ки аз он тамоми маълумотро дар синтаксиси болоӣ нест кардан мехоҳем.

Truncunc-ро дар ҷадвале истифода бурдан мумкин нест, ки бо маҳдудияти калиди хориҷӣ ишора шудааст. Вай ӯҳдадориро ба таври худкор пеш аз амалиёт ва баъдтар иҷро мекунад, бинобар ин бозгардондани транзаксия ғайриимкон аст ва ҳеҷ триггерҳо оташ дода намешаванд. Агар мо хоҳем, ки ҷадвалро дубора истифода барем, ба мо танҳо лозим аст, ки ба маъхази мавҷудбуда дар базаи маълумот дастрасӣ пайдо кунем.

Фарқи байни Drop ва Truncate чист?

Ҳам фармонҳои Drop ва Truncate фармонҳои DDL мебошанд ва инчунин изҳороти худкор иҷро карда мешаванд, то ин амалиёте, ки бо ин фармонҳо иҷро шудаанд, баргардонида намешаванд.

Фарқи асосии байни Drop ва Truncate дар он аст, ки фармони Drop на танҳо ҳама маълумотҳои ҷадвалро нест мекунад, балки сохтори ҷадвалро аз пойгоҳи додаҳо бо ҳама истинодҳо дур мекунад, дар ҳоле ки фармони Truncate танҳо ҳамаи сатрҳоро дар ҷадвал дур мекунад. , ва он сохтори ҷадвал ва истинодҳои онро нигоҳ медорад.

Агар ҷадвал партофта шавад, муносибатҳо бо дигар ҷадвалҳо дигар эътибор надоранд ва маҳдудиятҳои тамомият ва имтиёзҳои дастрасӣ низ хориҷ карда мешаванд. Ҳамин тавр, агар барои истифодаи ҷадвал талаб карда шавад, он бояд бо муносибатҳо, маҳдудиятҳои беайбӣ ва инчунин имтиёзҳои дастрасӣ таҷдид карда шавад. Аммо агар ҷадвал бурида шуда бошад, сохтори ҷадвал ва маҳдудиятҳои он барои истифода дар оянда боқӣ мемонанд ва аз ин рӯ, барои истифодаи дубора ҳама гуна рекреатсияҳои дар боло зикршуда талаб карда намешаванд.

Вақте ки ин фармонҳо татбиқ мешаванд, мо бояд аз истифодаи онҳо эҳтиёт бошем. Инчунин, мо бояд дар бораи табиати ин фармонҳо, чӣ гуна кор кардани онҳо ва инчунин пеш аз истифодаи онҳо банақшагирии бодиққат дошта бошем, то аз камбудиҳои зарурӣ халос шавем. Дар ниҳояти кор, ҳардуи ин фармонҳо метавонанд барои зуд ва ба осонӣ тоза кардани манбаи маълумот истифода шаванд ва захираҳои камтар сарф кунанд.