Maison > base de données > tutoriel mysql > MySQL Advanced Ten - Application des transactions

MySQL Advanced Ten - Application des transactions

黄舟
Libérer: 2016-12-29 16:47:39
original
989 Les gens l'ont consulté

1. Qu'est-ce qu'une transaction ?

Pourquoi devrions-nous utiliser la technologie transactionnelle ? De nos jours, de nombreux logiciels sont multi-utilisateurs, multi-cours et multi-thread. Une même table peut être utilisée par plusieurs personnes en même temps. Afin de conserver la cohérence des données, la notion de transactions est proposée.

1. Vérifiez si la base de données prend en charge les transactions (InnoDB prend en charge) ?

show engines;
Copier après la connexion

2. Vérifier le moteur de stockage par défaut actuel de MySQL ?

show variables like '%storage_engine%';
Copier après la connexion

3. Vérifier le moteur de stockage d'une certaine table ?

show create table test;
Copier après la connexion

4. Des modifications à la structure de rangement de la table ?

Créer une table InnoDB : Créer une table ... type=InnoDB;Alter table table_name type=InnoDB;

Exemple :

1. Créer une banque de base de données<. 🎜 >

create table account(  
aid int not null,  
accname varchar(20) not null,  
accmoney decimal(10,2) not null,  
primary key(aid))engine = innodb default charset = gbk;
Copier après la connexion
2. Insérez deux éléments de données dans la table du compte

insert into account values(1,&#39;A&#39;,4000);  
insert into account values(2,&#39;B&#39;,2000);
Copier après la connexion
3 Commencez la transaction de la table

start transaction;
Copier après la connexion
4. à la soumission active

commit;  
set autocommit = 0;
Copier après la connexion
5. Exécutez l'instruction suivante

<pre name="code" class="sql">update account set accmoney = accmoney - 1000 where aid = 1;  
update account set accmoney = accmoney + 1000 where aid = 2;
Copier après la connexion
6 Ouvrez une nouvelle fenêtre de commande MySQL pour afficher la table des comptes

select * from account;
Copier après la connexion
Copier après la connexion
Copier après la connexion
et vous constaterez que les données n'ont pas changé. , car les instructions modifiées ci-dessus, la base de données n'a pas émis d'instructions de modification


7. Si vous effectuez une requête dans la fenêtre d'origine, vous constaterez que les données ont changé <; 🎜>

8. Soumettez le commit physique
select * from account;
Copier après la connexion
Copier après la connexion
Copier après la connexion

9 Vérifiez les données dans un autre client et vous constaterez que les données ont changé
commit;
Copier après la connexion

3. . Annulation de la transaction et point de restauration
select * from account;
Copier après la connexion
Copier après la connexion
Copier après la connexion

1. Transaction La restauration

revient à l'état des données avant la transaction. grâce à la restauration.

Supplément : commit et chaîne ; signifie qu'une nouvelle transaction est rouverte après avoir validé la transaction.

rollback et release ; signifie la déconnexion du client après le rollback.

2. Point de restauration (instance)

Affichez les informations de la base de données
set autocommit = 0;  
insert into account values(3,&#39;C&#39;,3000);  
savepoint a1;  
insert into account values(4,&#39;D&#39;,3000);  
savepoint a2;  
insert into account values(5,&#39;E&#39;,3000);  
savepoint a3;
Copier après la connexion

就会看到你插入的数据

如果你想回滚到某一状态只需rollback调用一下就行;

如:回到savepoint a1的状态
Copier après la connexion
puis exécutez l'instruction de requête
rollback to savepoint a1;
Copier après la connexion

Vous verra une nouvelle donnée ajoutée au tableau.

4. Résumé des transactions

Les transactions doivent avoir 4 attributs :

Atomicité, cohérence, isolation et durabilité. Ces quatre propriétés sont souvent appelées propriétés ACIDE.

Atomicité : Une transaction est une unité de travail indivisible. Toutes les opérations incluses dans la transaction sont soit effectuées, soit aucune d'entre elles n'est effectuée.

Cohérence : Une transaction doit faire passer la base de données d'un état de cohérence à un autre état de cohérence. La cohérence et l’atomicité sont étroitement liées.

Isolement : l'exécution d'une transaction ne peut pas être interférée par d'autres transactions, c'est-à-dire que les opérations internes et les données utilisées par une transaction sont isolées des autres transactions simultanées et que les transactions exécutées simultanément ne peuvent pas interférer les unes avec les autres.

Durabilité : La durabilité devient également permanente. Une fois qu'une transaction est validée, ses modifications apportées aux données de la base de données doivent être permanentes. Les opérations ou pannes ultérieures ne devraient avoir aucun impact sur celui-ci.

Ce qui précède est le contenu de MySQL Advanced Ten - Application de transaction. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal