Transacties in SQL - Stappen om transacties met voorbeelden uit te voeren

Inhoudsopgave:

Anonim

Inleiding tot transacties in SQL

Een transactie in SQL die algemeen bekend staat als het doen van betalingen (verzenden, ontvangen, kopen, enz.), Maar als het gaat om de technische velden, is dit de manier om de logische informatie-eenheid in de database bij te werken.

Een transactie is de implementatie van een of meer wijzigingen in de database. We kunnen meerdere SQL-query's groeperen en tegelijkertijd in een transactie uitvoeren. Alle SQL-query's zouden in één keer worden uitgevoerd of allemaal worden teruggedraaid. Het zou slechts twee uitkomsten hebben, hetzij succes of falen.

De transactie die eenmaal is vastgelegd, kan niet worden teruggedraaid. Deze kan alleen worden teruggedraaid als de transactie niet is vastgelegd. MYSQL neemt de wijzigingen automatisch door in de database als alle query's succesvol zijn uitgevoerd. Als u de wijzigingen expliciet in de database wilt vastleggen, moet u eerst de automatische vastlegging uitschakelen met de opdracht -

Syntaxis: SET autocommit = 0;

Eigenschappen van de transactie

Hieronder volgen de belangrijke eigenschappen van de transacties, elke transactie moet deze eigenschappen volgen

1. Atomiciteit

Een transactie moet atomair zijn, gemiddelde gegevensmanipulatie moet worden voltooid voor een bepaalde logische eenheid. Deze eigenschap zorgt ervoor dat gegevenswijzigingen volledig plaatsvinden, anders wordt de transactie ongedaan gemaakt.

2. Consistentie

Zodra de transactie is voltooid, zijn alle beschikbare records consistent gedurende de transactie. Deze eigenschap zorgt ervoor dat de database-eigenschap geschakeld wordt na een succesvolle commit of niet.

3. Isolatie

Isolatie verwijst naar gegevensveranderingen op een bepaalde logische eenheid hebben geen invloed op een andere eenheid. Hiermee kan een transactie onafhankelijk worden uitgevoerd.

4. Duurzaamheid

Wijzigingen aangebracht tijdens transacties moeten permanent in het systeem zijn. In geval van een systeemfout zorgt deze eigenschap er ook voor dat gegevens worden gewijzigd of niet.

De bovengenoemde eigenschap van de transactie wordt ook wel ACID-eigenschap genoemd.

Stappen van transactie

1. Begin

Een transactie kan voorkomen in meerdere SQL-uitvoeringen, maar alle SQL moet tegelijkertijd worden uitgevoerd. Als een van de transacties mislukt, wordt de hele transactie teruggedraaid. Het statement voor het starten van de transactie is "START TRANSACTION". Begint met het acroniem voor START TRANSACTION.

Syntaxis: START TRANSACTIE;

2. Commit

Commits weerspiegelen permanent de wijzigingen in de database. De verklaring voor het starten van de transactie is "COMMIT".

Syntaxis: COMMIT;

3. Terugdraaien

Terugdraaien wordt gebruikt om de wijzigingen ongedaan te maken, dat wil zeggen dat het record niet wordt gewijzigd. Het bevindt zich in de vorige status. De verklaring voor het starten van de transactie is "ROLLBACK".

Syntaxis: ROLLBACK;

4. Savepoint

SAVEPOINT is ook een transactieverklaring. Deze instructie werd gebruikt om een ​​opslagpunt in het systeem te maken zodat de ROLLBACK-bewerking de status van het opslagpunt kan bereiken.

5. Laat Savepoint los

RELEASE SAVEPOINT is een instructie om het opslagpunt en geheugen vrij te geven dat het systeem verbruikt bij het maken van een opslagpunt.

Syntaxis: RELEASE SAVEPOINT SP

Opmerkingen - SP is de naam van het opslagpunt toen dit opslagpunt werd gemaakt voordat de transactie startte.

6. Stel transactie in

De opdracht SET TRANSACTION wordt gebruikt om het transactiekenmerk op te geven, zoals de gegeven transactie een alleen-lezen- of lees-schrijfsessie is.

Syntaxis : TRANSACTIE INSTELLEN (LEES-SCHRIJF | ALLEEN LEZEN);

De transactie wordt gebruikt om de complexe wijzigingen in de database uit te voeren. Het wordt voornamelijk gebruikt bij bankgerelateerde informatie verandert in een relationele database.

De transactie wordt ondersteund door MYSQL-engine InnoDB. Standaard blijft automatisch vastleggen ingeschakeld, daarom vindt elke keer dat SQL wordt uitgevoerd nadat de uitvoering automatisch is doorgegaan, plaats.

Transacties met SQL

Voorbeeld 1

Banktransactie: een rekening die voor 50000 is afgeschreven van persoon A spaarrekening & dit bedrag heeft overgemaakt op de leningsrekening van A.

Start transactie: deze start-transactie converteert alle SQL-query's naar één transactie-eenheid.

UPDATE `account` SET `balance` = `balance` - 50000 WHERE user_id = 7387438;

Deze SQL-query trekt het bedrag af van het bestaande rekeningsaldo.

UPDATE `loan_account` SET `paid_amount` = `paid_amount` + 50000 WHERE user_id = 7387438;

Deze SQL-query voegt het bedrag toe aan de gebruikersleningsaccount.

Insert into `transaction_details`(`user_id`, 'amount') values (7387438, '50000');

Deze SQL-query voegt een nieuw record in de tabel met transactiegegevens in, deze tabel bevat de details van alle transacties van de gebruikers. Als alle query met succes wordt uitgevoerd, moet de opdracht COMMIT worden uitgevoerd, omdat wijzigingen permanent in de database moeten worden opgeslagen.

Commit: deze commit-instructie slaat door een transactie opgeroepen wijzigingen op in de database. Als een van de transacties mislukt tijdens de uitvoering, moet de opdracht ROLLBACK worden uitgevoerd om de volledige transactie terug te zetten

Terugdraaien: Terugdraaien vindt plaats zodra een zoekopdracht mislukt tijdens de uitvoering.

Voorbeeld 2

Voorraadtransactie: in de gegeven itementabel zijn 6 items beschikbaar.

De volgende START TRANSACTION-instructie uitvoeren om de transactie te starten.

Voer nu het commando SET AUTOCOMMIT = 0 uit ; om de auto-commit uit te schakelen

Voer nu de volgende instructie uit om het record uit de itementabel te verwijderen

Nu beschikbaar record in de tabel is 4 dwz records tijdelijk verwijderd uit de tabelitems

Nu de opdracht ROLLBACK wordt uitgevoerd om de wijzigingen terug te zetten, zou het verwijderde record beschikbaar zijn in de tabelitems zoals eerder voordat de transactie werd gestart

Nogmaals, als dezelfde verwijderbewerking wordt toegepast, zou de COMMIT-bewerking nadat deze is gewijzigd, permanent in de database worden opgeslagen

Nu kunnen we zien dat na het ROLLBACK-commando het record nog in een nieuwe staat was. Dit betekent dat als COMMIT-bewerking uitgevoerde wijzigingen niet kunnen worden teruggedraaid omdat het permanent wijzigingen aanbrengt in de database;

Voordelen van het gebruik van transactie in SQL

a) Het gebruik van Transactie verbetert de prestaties , wanneer het invoegen van 1000 records met behulp van transacties in dat geval minder tijd zou kosten dan normaal invoegen. Net als bij een normale transactie, zou elke keer dat COMMIT plaatsvond na elke uitvoering van de query en het zou de uitvoeringstijd telkens verhogen terwijl het in de transactie niet nodig was om COMMIT-instructie na elke SQL-query uit te voeren. COMMIT op het einde zou alle wijzigingen in de database permanent in één keer weergeven. Ook als het gebruik van een transactie het terugdraaien van de wijzigingen veel eenvoudiger zou zijn dan de normale transactie. ROLLBACK zal alle wijzigingen in één keer terugdraaien en het systeem in de vorige staat houden.

b) De transactie zorgt voor gegevensintegriteit in de relationele database. Het grootste deel van de database gebruikt meerdere tabellen om de gegevens te onderhouden en tijdens het maken van updates kunnen er op dat moment wijzigingen zijn in de meerdere tabellen als een van de SQL-query's mislukt, zou de transactie de gegevens ongewijzigd houden.

Conclusie

Het gebruik van transacties is een best practice bij het bijwerken van informatie voor een logische eenheid in een relationele database. Voor transactie-implementatie database-engine moet de transactie ondersteunen zoals InnoDB-engine. De transactie, als een eenheid van SQL-instructies, kan in één keer worden teruggezet met behulp van een enkele ROLLBACK-instructie. Transactie zorgt voor de data-integriteit en verbetert de databaseprestaties.

Aanbevolen artikelen

Dit is een gids voor transacties in SQL. Hier bespreken we de introductie, eigenschappen, stappen, voorbeelden van transacties in SQL, samen met de voordelen van het gebruik van transacties in SQL.

  1. Wat is SQL
  2. SQL Management Tools
  3. SQL-weergaven
  4. Typen joins in SQL Server
  5. Top 6 soorten joins in MySQL met voorbeelden