Падзенне супраць ўсячэння

Drop and Truncate - два выказванні SQL (Structured Query Language), якія выкарыстоўваюцца ў сістэмах кіравання базамі дадзеных, дзе мы хочам выдаліць запісы дадзеных з базы дадзеных. І аператары Drop і Truncate выдаляюць усе дадзеныя з табліцы і адпаведную заяву SQL. Аперацыя выдалення не эфектыўная ў гэтым выпадку, паколькі яна выкарыстоўвае больш месцаў для захоўвання, чым Drop and Truncate.

У выпадку, калі мы хочам адкінуць табліцу ў базу дадзеных цалкам з усімі дадзенымі, SQL дазваляе нам лёгка выконваць гэта з дапамогай аператара Drop. Каманда "Drop" - гэта каманда DDL (Мова вызначэння дадзеных), і з яе дапамогай можна знішчыць існуючую базу дадзеных, табліцу, індэкс або прагляд. Выдаляе ўсю інфармацыю з табліцы, а таксама структуру табліцы з базы дадзеных. Акрамя таго, мы можам пажадаць пазбавіцца ад усіх дадзеных у табліцы проста, але без табліцы, і ў такім сцэнары мы можам выкарыстоўваць заяву Truncate ў SQL. Ссячэнне - гэта таксама каманда DDL, і яна ліквідуе ўсе радкі табліцы, але захоўвае вызначэнне табліцы аднолькава для далейшага выкарыстання.

Кідайце каманду

Як ужо гаварылася раней, каманда Drop выдаляе вызначэнне табліцы і ўсе яе дадзеныя, абмежаванні цэласнасці, індэксы, трыгеры і прывілеі доступу, якія былі створаны менавіта ў гэтай табліцы. Такім чынам, ён цалкам выкідае існуючы аб'ект з базы дадзеных, а адносіны да іншых табліц таксама не будуць дзейнічаць пасля выканання каманды. Таксама ён выдаляе ўсю інфармацыю пра табліцу са слоўніка дадзеных. Ніжэй прыведзены тыповы сінтаксіс для выкарыстання выказвання Drop на табліцы.

КАПАЛЬНАЯ ТАБЛІКА

Мы павінны проста замяніць імя табліцы, якую мы хочам выдаліць з базы дадзеных у прыведзеным вышэй прыкладзе каманды Drop.

Важна адзначыць, што аператар Drop не можа быць выкарыстаны для выдалення табліцы, на якую ўжо спасылаецца абмежаванне замежнага ключа. У такім выпадку спасылка на замежныя ключавыя абмежаванні альбо на такую ​​канкрэтную табліцу павінна быць адменена ў першую чаргу. Таксама заяву Drop нельга ўжываць у сістэмных табліцах базы дадзеных.

Паколькі каманда Drop - гэта аператар аўтаматычнага здзяйснення, пасля выканання аперацыі немагчыма адкруціць назад і ніякіх трыгераў не будзе. Калі табліца адкінутая, усе спасылкі на табліцу будуць несапраўднымі, і таму, калі мы хочам выкарыстоўваць табліцу яшчэ раз, яе трэба узнавіць з усімі абмежаваннямі цэласнасці і прывілеямі доступу. Усе адносіны да іншых табліц таксама павінны размяшчацца зноў.

Скарочаная каманда

Команда абрэзаць - гэта каманда DDL, і яна выдаляе ўсе радкі ў табліцы без якіх-небудзь умоў, указаных карыстальнікам, і вызваляе прастору, якую выкарыстоўвае табліца, але структура табліцы з яе слупкамі, індэксамі і абмежаваннямі застаецца ранейшай. Усечэнне ліквідуе дадзеныя з табліцы шляхам размяшчэння старонак дадзеных, якія выкарыстоўваюцца для захоўвання дадзеных табліцы, і толькі гэтыя разборкі старонак захоўваюцца ў часопісе транзакцый. Такім чынам, ён выкарыстоўвае менш рэсурсаў часопіса транзакцый і сістэмных рэсурсаў у параўнанні з іншымі звязанымі камандамі SQL, такімі як Выдаліць. Так Truncate - гэта крыху больш хуткае сцвярджэнне, чым іншыя. Ніжэй прыведзены тыповы сінтаксіс для каманды Truncate.

ТРУНКТАЛЬНАЯ ТАБЛІЦА

Мы павінны замяніць імя табліцы, з якой мы хочам выдаліць усе дадзеныя, у вышэйзгаданым сінтаксісе.

Скарочанае выкарыстанне нельга выкарыстоўваць у табліцы, на якую спасылаецца абмежаванне замежнага ключа. Ён выкарыстоўвае аўтаматычнае здзяйсненне, перш чым ён дзейнічае, і іншае здзяйсненне пасля гэтага, таму адкат транзакцыі немагчымы, і трыгеры не запускаюцца. Калі мы хочам паўторна выкарыстоўваць табліцу, нам патрэбен толькі доступ да існуючага вызначэння табліцы ў базе дадзеных.

У чым розніца паміж Drop і Truncate?

Абодва каманды Drop і Truncate - гэта каманды DDL, а таксама аўтаматычныя аперацыі здзяйснення, таму транзакцыі, выкананыя з дапамогай гэтых каманд, не могуць быць адноўлены.

Асноўная розніца паміж Drop і Truncate заключаецца ў тым, што каманда Drop выдаляе не толькі ўсе дадзеныя ў табліцы, але і назаўсёды выдаляе структуру табліцы з базы дадзеных з усімі спасылкамі, у той час як каманда Truncate выдаляе толькі ўсе радкі ў табліцы. , і ён захоўвае структуру табліцы і яе спасылкі.

Калі табліца адкінутая, адносіны да іншых табліц перастануць дзейнічаць, а таксама абмежаванні цэласнасці і прывілеі доступу таксама будуць выдалены. Такім чынам, калі табліцу патрабуецца паўторна выкарыстоўваць, яна павінна быць перабудавана з адносінамі, абмежаваннем цэласнасці, а таксама прывілеямі доступу. Але калі табліца ўсечаная, структура табліцы і яе абмежаванні застаюцца для далейшага выкарыстання, і таму любы з пералічаных вышэй змяненняў не патрабуецца для паўторнага выкарыстання.

Калі гэтыя каманды прымяняюцца, мы павінны быць асцярожнымі, каб выкарыстоўваць іх. Акрамя таго, мы павінны мець больш глыбокае разуменне характару гэтых каманд, як яны працуюць, а таксама ўважлівае планаванне перад іх выкарыстаннем, каб пазбегнуць адсутнасці неабходнасці. Нарэшце, абедзве гэтыя каманды можна выкарыстоўваць для хуткай і простай ачысткі баз дадзеных, спажываючы менш рэсурсаў.