Drop vs Truncate- ը

Drop- ը և Truncate- ը SQL (Structured Query Language) երկու հայտարարություն են, որոնք օգտագործվում են տվյալների շտեմարանի կառավարման համակարգերում, որտեղ մենք ցանկանում ենք հեռացնել տվյալների գրառումները տվյալների բազայից: Թե Drop- ի, թե Truncate- ի հայտարարությունները հեռացնում են ամբողջ տվյալները աղյուսակում և դրա հետ կապված SQL հայտարարությամբ: Deleteնջել գործողությունն այս դեպքում արդյունավետ չէ, քանի որ այն օգտագործում է ավելի շատ պահեստային տարածքներ, քան Drop- ը և Truncate- ը:

Այն դեպքում, եթե մենք ուզում ենք տվյալների բազայում բոլոր իր տվյալների հետ միասին հեռացնել աղյուսակը, SQL- ն թույլ է տալիս մեզ հեշտությամբ կատարել այս օգտագործումը Drop- ի հայտարարության միջոցով: Drop հրամանը DDL (Data Definition Language) հրամանն է, և այն կարող է օգտագործվել գոյություն ունեցող տվյալների բազա, աղյուսակ, ինդեքս կամ դիտում ոչնչացնելու համար: Այն ջնջում է ամբողջ տեղեկատվությունը աղյուսակում, ինչպես նաև սեղանի կառուցվածքը տվյալների բազայից: Նաև գուցե ցանկանանք ազատել բոլոր տվյալները մի աղյուսակում, պարզապես, բայց առանց սեղանի, և նման սցենարում կարող ենք օգտագործել SQL- ի կարճ հայտարարությունը SQL- ում: Truncate- ը նաև DDL հրամաններ է և այն վերացնում է աղյուսակի բոլոր շարքերը, բայց պահպանում է սեղանի սահմանումը նույնը հետագա օգտագործման համար:

Թողնել հրամանը

Ինչպես ավելի վաղ նշվեց, Drop հրամանը հեռացնում է աղյուսակի սահմանումը և դրա բոլոր տվյալները, ամբողջականության սահմանափակումները, ինդեքսները, ձգանները և մուտքի արտոնությունները, որոնք ստեղծվել են այդ կոնկրետ սեղանի վրա: Այսպիսով, այն ամբողջովին շեղում է առկա օբյեկտը տվյալների շտեմարանից, և այլ սեղանների հետ հարաբերությունները նույնպես այլևս ուժի մեջ չեն հրամանը կատարելուց հետո: Նաև այն հեռացնում է սեղանի վերաբերյալ բոլոր տեղեկությունները տվյալների բառարանից: Հետևյալը Drop- ի հայտարարությունը սեղանի վրա օգտագործելու բնորոշ շարադրությունն է:

ԴՐՈՂ աղյուսակը

Մենք պարզապես պետք է փոխարինենք սեղանի անունը, որը մենք ցանկանում ենք հեռացնել տվյալների բազայից Drop հրամանի վերը նշված օրինակով:

Կարևոր է նշել, որ Drop- ի հայտարարությունը չի կարող օգտագործվել աղյուսակը ջնջելու համար, որն արդեն վկայակոչվել է արտաքին բանալիների սահմանափակումով: Այդ դեպքում առաջին հերթին պետք է իջնել արտասահմանյան բանալիների հիշատակումը կամ այդ հատուկ աղյուսակը: Նաև Drop- ի հայտարարությունը չի կարող կիրառվել տվյալների բազայի համակարգի սեղանների վրա:

Քանի որ Drop հրամանը ինքնավստահ հայտարարություն է, ապա գործողությունը կրակելուց հետո հնարավոր չէ հետ մղել, և ոչ մի ազդակ չի արձակվի: Երբ աղյուսակը իջնում ​​է, աղյուսակի բոլոր հղումները վավեր չեն լինելու, ուստի, եթե մենք ուզում ենք կրկին օգտագործել սեղանը, այն պետք է վերստեղծվի բոլոր ամբողջականության սահմանափակումներով և մուտքի արտոնություններով: Բոլոր հարաբերությունները մյուս սեղանների հետ նույնպես պետք է կրկին տեղակայվեն:

Կտրուկ հրամանը

Truncate հրամանը DDL հրամանն է, և այն դուրս է բերում աղյուսակի բոլոր շարքերը ՝ առանց օգտագործողի կողմից սահմանված որևէ պայմանի, և ազատում է սեղանի կողմից օգտագործվող տարածքը, բայց սեղանի կառուցվածքն իր սյուներով, ինդեքսներով և սահմանափակումներով մնում է նույնը: Truncate- ը վերացնում է աղյուսակի տվյալները ՝ տեղաբաշխելով սեղանի տվյալները պահելու համար օգտագործվող տվյալների էջերը, և միայն այդ էջի տեղաբաշխումները պահվում են գործարքների մատյանում: Այսպիսով, այն օգտագործում է ավելի քիչ գործարքների մատյանների աղբյուրներ և համակարգի ռեսուրսներ ՝ համեմատած .նջման նման այլ SQL հրամանների հետ: Այնպես որ, Truncate- ը մի փոքր ավելի արագ հայտարարություն է, քան մյուսները: Հետևյալը Truncate հրամանի բնորոշ շարահյուսությունն է:

ԵՐԿՐԱՇՐԱՆ

Մենք պետք է փոխարինենք աղյուսակի անվանումը, որից մենք ուզում ենք հանել ամբողջ տվյալները ՝ վերը նշված շարահյուսության մեջ:

Կտրուկը հնարավոր չէ օգտագործել այն սեղանի վրա, որը վկայակոչվել է օտարերկրյա բանալիների սահմանափակումով: Այն գործադրում է ինքնաբերաբար, նախքան այն գործելը, և դրանից հետո ևս մեկ պարտավորություն, այնպես որ գործարքի վերադարձը անհնար է, և ոչ մի ազդակ չի արձակվում: Եթե ​​մենք ուզում ենք վերօգտագործել աղյուսակը, ապա մեզ հարկավոր է միայն մուտք գործել տվյալների բազայում առկա սեղանի սահմանում:

Ո՞րն է տարբերությունը Drop- ի և Truncate- ի միջև:

Թե Drop, այնպես էլ Truncate հրամաններն DDL հրամաններ են, ինչպես նաև ինքնավստահ հայտարարություններ, այնպես որ այս հրամանների միջոցով իրականացվող գործարքները հնարավոր չէ հետ մղել:

Drop- ի և Truncate- ի միջև առաջնային տարբերությունն այն է, որ Drop հրամանը հեռացնում է ոչ միայն աղյուսակի բոլոր տվյալները, այլև այն բոլոր հղումներով մշտապես հեռացնում է աղյուսակի կառուցվածքը տվյալների բազայից, մինչդեռ Truncate հրամանը միայն հեռացնում է բոլոր շարքերը մի սեղանի մեջ , և այն պահպանում է սեղանի կառուցվածքը և դրա հղումները:

Եթե ​​աղյուսակը իջեցվի, այլ սեղանների հետ հարաբերություններն այլևս ուժի մեջ չեն, և հանվելու են նաև ամբողջականության սահմանափակումները և մուտքի արտոնությունները: Այսպիսով, եթե սեղանից պահանջվում է վերօգտագործել, այն պետք է վերակառուցվի հարաբերությունների, ամբողջականության սահմանափակումների, ինչպես նաև մուտքի արտոնությունների հետ: Բայց եթե սեղանը կտրված է, ապա սեղանի կառուցվածքը և դրա սահմանափակումները մնում են հետագա օգտագործման համար, և այսպիսով, վերոհիշյալ ցանկացած հանգստի համար անհրաժեշտ չէ վերաօգտագործման համար:

Երբ այդ հրամանները կիրառվում են, մենք պետք է զգույշ լինենք դրանք օգտագործելու համար: Բացի այդ, մենք պետք է ավելի լավ պատկերացում ունենանք այս հրամանների բնույթի, թե ինչպես են նրանք աշխատում, ինչպես նաև որոշ զգույշ պլանավորում դրանք օգտագործելուց առաջ, որպեսզի կանխեն բացակայող տարրերը: Ի վերջո, այս երկու հրամաններն էլ կարող են օգտագործվել տվյալների բազաները արագ և հեշտությամբ մաքրելու համար ՝ սպառելով ավելի քիչ ռեսուրսներ: