SQL - databázové transakce (db transaction)

SQL - databázové transakce (db transaction)

Databázové transakce se používají k tomu, aby byla zachována integrita databáze (konzistence dat). Cílem je, aby nenastala situace, kdy se provede pouze část sledu SQL dotazů, které spolu souvisí. Pokud tak nastane, tak aby došlo ke stornování všech změn.

Příklad SQL transakcí

Použití databázových transakcí je celkem jednoduché - před začátlem sledu SQL dotazů uvedeme START TRANSACTION, následují související SQL dotazy a na závěr uvedeme COMMIT takto:

START TRANSACTION;
INSERT INTO ....
UPDATE ....
COMMIT;

Transakci lze ukončit i příkazem ROLLBACK, který prove zrušení transakce.

 

Nette db transakce

Databázové transakce v Nette se dle dokumentace používají takto:

// zahajeni transakce
$db->beginTransaction();


// potvrzeni
$db->commit();


// vraceni zmen
$db->rollback();

 

Další možností je použití metody transaction() s callbackem

$insertId = $db->transaction(function ($db) {
    $db->query('UPDATE ...');
    $db->query('INSERT INTO ...');
    // etc...
    return $db->getInsertId();
});

 

Více v dokumentaci Nette ...

 

PS: Pokud používáte PDO, tak si přečtěte něco o PDO::beginTransaction

Komentáře

Vaše reakce na SQL - databázové transakce (db transaction)

Související obsah

databaze

sql

mysql

php

nette

serial-sql

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.