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;

Фаҳмидани ин фармонҳо барои таъмин кардани муттаҳидии маълумот дар барномаҳо, ки бо базаҳои маълумоти мутаҳид кор мекунанд, муҳим аст.