რომელი ტრანზაქციის მართვის ბრძანებები იცით?
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;
ამ ბრძანებების გაგება მნიშვნელოვანია მონაცემთა მთლიანობის უზრუნველსაყოფად რეილაციურ ბაზებთან მუშაობის დროს.