tgoop.com/djangolearn_ir/631
Create:
Last Update:
Last Update:
محاصره در تراکنش ها
یه چیزی هست که شاید خیلیهاتون متوجهش نشده باشید. اونم اینه که توی PostgreSQL، حتی سادهترین دستورات هم توی یه تراکنش انجام میشن! عجیبه نه؟
شاید بگید "خب چطور میشه فهمید؟ ما که تراکنشی شروع نکردیم!". ولی یه خورده صبر کنید... میتونیم یه دستوری اجرا کنیم که برامون نشون بده الان داخل کدوم تراکنشیم. بفرما:
SELECT txid_current();
حالا چی شد؟ یه عددی بهتون نشون داد، درسته؟ ولی ما که چیزی شروع نکردیم! چون اون عددی که دیدید، شناسهی تراکنشیه که همین الان توش هستید.
حالا بازم همون دستور رو اجرا کنید. چی میبینید؟ اون عدد، یه واحد زیادتر شده! آره، این یعنی حتی همین یه دستور کوچیک، یه تراکنش جدید برا خودش باز کرده.
شاید بپرسید چرا انقدر ریزهکاری؟ خب، اینجوری PostgreSQL، خیالش راحته که هر تغییری که انجام میشه، یا کاملاً انجام میشه، یا اصلاً انجام نمیشه. اگه توی یه دستور مشکلی پیش بیاد، کل تراکنش باطل میشه و هیچ تغییری اعمال نمیشه.
پس یادتون باشه، توی PostgreSQL، همیشه تو یه تراکنش هستید، چه بخواهید، چه نخواهید! این یه جور مراقبت اضافهست که دادههاتون رو سالم نگه میداره.
#postgresql
@Code_Crafters
BY جنگولرن
Share with your friend now:
tgoop.com/djangolearn_ir/631