Sobes.tech
Middle

რომელი ტრანზაქციის მართვის ბრძანებები იცით?

sobes.tech AI

პასუხი AI-სგან

BEGIN (შესაძლოა იყოს უხილავი), COMMIT, ROLLBACK.

  • BEGIN: იწყებს ახალ ტრანზაქციას. ეს ოპერაცია არ არის აუცილებელი სესიის პირველ DML ოპერაციაზე, რადგან ტრანზაქცია ავტომატურად დაიწყება.

    BEGIN TRANSACTION;
    
  • COMMIT: ინახავს ყველა ცვლილებას, რომელიც განხორციელდა მიმდინარე ტრანზაქციაში, დაასრულებს მას.

    COMMIT;
    
  • ROLLBACK: გაუქმებს ყველა ცვლილებას, რომელიც განხორციელდა მიმდინარე ტრანზაქციაში, დაასრულებს მას.

    ROLLBACK;
    

ზოგიერთი მონაცემთა ბაზა ასევე მხარს უჭერს:

  • SAVEPOINT: ადგენს შენახვის წერტილს მიმდინარე ტრანზაქციის ფარგლებში. საშუალებას აძლევს დაბრუნებას ამ წერტილზე, მთელი ტრანზაქციის გაუქმების გარეშე.

    SAVEPOINT my_savepoint;
    
  • ROLLBACK TO SAVEPOINT: გაუქმებს ცვლილებებს მითითებულ შენახვის წერტილამდე.

    ROLLBACK TO SAVEPOINT my_savepoint;
    
  • RELEASE SAVEPOINT: ამოწმებს შენახვის წერტილს.

    RELEASE SAVEPOINT my_savepoint;
    

საკვანძო მაგალითი:

BEGIN; -- დაიწყოს ტრანზაქცია

INSERT INTO users (name) VALUES ('Alice'); -- ოპერაციის შესრულება

SAVEPOINT before_update; -- შენახვის წერტილის შექმნა

UPDATE products SET price = price * 1.1 WHERE id = 1; -- სხვა ოპერაციის შესრულება

-- თუ რამე არასწორად მოხდა განახლებისას, დაბრუნება ამ წერტილზე
-- ROLLBACK TO SAVEPOINT before_update;

-- თუ ყველაფერი კარგად არის, ცვლილებების დამტკიცება
COMMIT; -- ტრანზაქციის დასრულება და ცვლილებების შენახვა

-- თუ საჭიროა მთელი ტრანზაქციის გაუქმება BEGIN-ის შემდეგ
-- ROLLBACK;

ამ ბრძანებების გაგება მნიშვნელოვანია მონაცემთა მთლიანობის უზრუნველსაყოფად რეილაციურ ბაზებთან მუშაობის დროს.