Кадом фармонҳои идоракунии муомиларо медонед?
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;
Фаҳмидани ин фармонҳо барои таъмин кардани муттаҳидии маълумот дар барномаҳо, ки бо базаҳои маълумоти мутаҳид кор мекунанд, муҳим аст.