Maison base de données tutoriel mysql mysql中的触发器和事务的操作_MySQL

mysql中的触发器和事务的操作_MySQL

Jun 01, 2016 pm 01:01 PM
事务 触发器

触发器 语法

创建触发器:

CREATE TRIGGER trigger_name trigger_time trigger_event

ON tbl_name FOR EACH ROW trigger_stmt;

trigger_time是触发程序的动作时间。它可以是BEFORE或AFTER trigger_event指明了激活触发程序的语句的类型。

trigger_event可以是下述值之一:

· INSERT:将新行插入表时激活触发程序,例如,通过INSERT、LOAD DATA和REPLACE语句。

· UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句。

· DELETE:从表中删除某一行时激活触发程序,例如,通过DELETE和REPLACE语句。

例子:

mysql-> create trigger test

-> before update on table_name for each row

-> update table_name set NEW.updateTime = NOW() where id=NEW.ID;

如果监测的表和更新的表是同一个 则可以省略为 

mysql-> create trigger test

-> before update on table_name for each row

-> set NEW.updateTime = NOW() where id=NEW.ID;

删除触发器:

DROP TRIGGER trigger_name;

例子:

mysql->drop trigger trigger_name;

查看触发器:

例子:

mysql->desc triggers;

或者

mysql->select * from triggers where trigger_name='xxxxxx';

mysql->show create trigger trigger_name;

======================================================================================

事务的特征:ACID

  • Atomicity(原子性)
  • Consistency(稳定性,一致性)
  • Isolation(隔离性)
  • Durability(可靠性)

    注意:事务只针对对数据数据产生影响的语句有效。

    show engines //查看mysql锁支持的数据引擎。

    MyISAM不支持事物,InnoDB支持事物。

    默认情况下,MySQL将以自动提交模式运行,这意味着没一条小命令都将当做一个只有一条命令的事物来执行。

    如果要让mysql支持支持事务,只需要修改数据引擎(alter table person type=INNODB)。

    使用start transaction或者begin命令来开启一个事物,使用commit,或者rollback来结束事物。

    事物的结束:事物除了commit,rollback会结束外,使用DDL或者DCL语句也会结束。

    保存点:通过保存点机制:用户可以在事物里用savepoint name命令设置一些保存点,以后用户在使用rollback to savepoint name结束事物时,name之前的数据保存,之后的数据不保存。

    mysql使用事务的关键字

    • begin //打开一个事务。
    • commit //提交到数据库。
    • rollback //取消操作。
    • savepoint //保存,部分取消,部分提交。
    • alter table person type=INNODB //修改数据引擎。

      示例:

      1. begin
      2.  
      3. update person set name='efgh' where id =10
      4.  
      5. select * from person
      6.  
      7. rollback
      8.  
      9. select * from person

       示例:

      1. alter table person type=INNODB
      2.  
      3. begin
      4.  
      5. update person set name='efgh' where id =10
      6.  
      7. select * from person
      8.  
      9. commit
      10.  
      11. select * from person
      12.  
      13. begin
      14.  
      15. delete from person where id=21
      16.  
      17. update person set name='efgh' where id =10
      18.  
      19. commit/rollback

       针对上面部分提交,必须用到保存点。

      事务保存点注意:

      1.只能取消到某个保存点 rollback to savepoint p1。

      2.不能提交某个保存 commit to savepoint p2//错误写法。

      3.最后commit 把未取消的保存点去不提交到数据。

      事务保存点使用例子:

      1. begin;
      2.  
      3. update score set score=40 where scoreid=1;
      4.  
      5. savepoint s1;
      6.  
      7. update score set score=50 where scoreid=2;
      8.  
      9. select * from score;
      10.  
      11. rollback to savepoint s1;
      12.  
      13. select * from score;
      14.  
      15. commit;
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment masquer le texte jusqu'à ce qu'on clique dessus dans Powerpoint Comment masquer le texte jusqu'à ce qu'on clique dessus dans Powerpoint Apr 14, 2023 pm 04:40 PM

Comment masquer le texte avant tout clic dans PowerPoint Si vous souhaitez que le texte apparaisse lorsque vous cliquez n'importe où sur une diapositive PowerPoint, sa configuration est simple et rapide. Pour masquer du texte avant de cliquer sur un bouton dans PowerPoint : Ouvrez votre document PowerPoint et cliquez sur le menu Insérer. Cliquez sur Nouvelle diapositive. Choisissez Vide ou l’un des autres préréglages. Toujours dans le menu Insertion, cliquez sur Zone de texte. Faites glisser une zone de texte sur la diapositive. Cliquez sur la zone de texte et entrez votre

Délai d'attente du verrouillage dépassé ; essayez de redémarrer la transaction - Comment résoudre l'erreur MySQL : délai d'attente de la transaction Délai d'attente du verrouillage dépassé ; essayez de redémarrer la transaction - Comment résoudre l'erreur MySQL : délai d'attente de la transaction Oct 05, 2023 am 08:46 AM

Lockwaittimeoutexceeded;tryrestartingtransaction - Comment résoudre l'erreur MySQL : délai d'attente de transaction Lorsque vous utilisez la base de données MySQL, vous pouvez parfois rencontrer une erreur courante : Lockwaittimeoutexceeded;tryrestartingtransaction. Cette erreur indique que le délai d'attente de transaction a expiré. Cette erreur se produit généralement lorsque

Traitement des transactions MySQL : la différence entre la soumission automatique et la soumission manuelle Traitement des transactions MySQL : la différence entre la soumission automatique et la soumission manuelle Mar 16, 2024 am 11:33 AM

Traitement des transactions MySQL : la différence entre la soumission automatique et la soumission manuelle Dans la base de données MySQL, une transaction est un ensemble d'instructions SQL soit toutes les exécutions réussissent, soit toutes les exécutions échouent, garantissant la cohérence et l'intégrité des données. Dans MySQL, les transactions peuvent être divisées en soumission automatique et soumission manuelle. La différence réside dans le moment de la soumission de la transaction et dans l'étendue du contrôle sur la transaction. Ce qui suit présentera en détail la différence entre la soumission automatique et la soumission manuelle, et donnera des exemples de code spécifiques à illustrer. 1. Soumettre automatiquement dans MySQL, s'il n'est pas affiché

Comment ajouter un déclencheur dans Oracle Comment ajouter un déclencheur dans Oracle Dec 12, 2023 am 10:17 AM

Dans la base de données Oracle, vous pouvez utiliser l'instruction CREATE TRIGGER pour ajouter des déclencheurs. Un déclencheur est un objet de base de données qui peut définir un ou plusieurs événements sur une table de base de données et exécuter automatiquement les actions correspondantes lorsque l'événement se produit.

Comment écrire des déclencheurs dans MySQL en utilisant PHP Comment écrire des déclencheurs dans MySQL en utilisant PHP Sep 21, 2023 am 08:16 AM

Comment écrire des déclencheurs dans MySQL à l'aide de PHP MySQL est un système de gestion de bases de données relationnelles couramment utilisé et PHP est un langage de script côté serveur populaire. Utiliser PHP pour écrire des déclencheurs dans MySQL peut nous aider à réaliser des opérations de base de données automatisées. Cet article explique comment utiliser PHP pour écrire des déclencheurs MySQL et fournit des exemples de code spécifiques. Avant de commencer, assurez-vous que MySQL et PHP ont été installés et que les tables de base de données correspondantes ont été créées. 1. Créez des fichiers et des données PHP

Quel est le niveau de déclenchement de MySQL ? Quel est le niveau de déclenchement de MySQL ? Mar 30, 2023 pm 08:05 PM

Les déclencheurs MySQL sont au niveau de la ligne. Selon les standards SQL, les déclencheurs peuvent être divisés en deux types : 1. Les déclencheurs au niveau de la ligne, qui seront activés une fois pour chaque ligne de données modifiées. Si une instruction insère 100 lignes de données, le déclencheur sera appelé 100 fois ; . Déclencheurs au niveau de l'instruction Le déclencheur est activé une fois pour chaque instruction. Une instruction qui insère 100 lignes de données n'appellera le déclencheur qu'une seule fois. MySQL ne prend en charge que les déclencheurs au niveau des lignes, pas les déclencheurs au niveau des instructions préparées.

Les principes et scénarios d'application des transactions MySQL Les principes et scénarios d'application des transactions MySQL Mar 02, 2024 am 09:51 AM

Le principe et les scénarios d'application des transactions MySQL Dans le système de base de données, une transaction est un ensemble d'opérations SQL. Ces opérations sont soit toutes exécutées avec succès, soit toutes échouent et sont annulées. En tant que système de gestion de base de données relationnelle couramment utilisé, MySQL prend en charge les caractéristiques des transactions et peut garantir que les données de la base de données sont garanties en termes de cohérence, d'isolement, de durabilité et d'atomicité. Cet article commencera par les principes de base des transactions MySQL, présentera ses scénarios d'application et fournira des exemples de code spécifiques pour référence aux lecteurs. Le principe des transactions MySQL : Mon

Tutoriel PHP PDO : Un guide avancé des bases à la maîtrise Tutoriel PHP PDO : Un guide avancé des bases à la maîtrise Feb 19, 2024 pm 06:30 PM

1. Introduction à PDO PDO est une bibliothèque d'extension de PHP, qui fournit une manière orientée objet d'exploiter la base de données. PDO prend en charge une variété de bases de données, notamment Mysql, postgresql, Oracle, SQLServer, etc. PDO permet aux développeurs d'utiliser une API unifiée pour exploiter différentes bases de données, ce qui permet aux développeurs de basculer facilement entre différentes bases de données. 2. PDO se connecte à la base de données Pour utiliser PDO pour vous connecter à la base de données, vous devez d'abord créer un objet PDO. Le constructeur de l'objet PDO reçoit trois paramètres : type de base de données, nom d'hôte, nom d'utilisateur de la base de données et mot de passe. Par exemple, le code suivant crée un objet qui se connecte à une base de données MySQL : $dsn="mysq

See all articles