Heim Datenbank MySQL-Tutorial 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;
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verbergen Sie Text in Powerpoint, bis er angeklickt wird So verbergen Sie Text in Powerpoint, bis er angeklickt wird Apr 14, 2023 pm 04:40 PM

So blenden Sie Text vor jedem Klick in PowerPoint aus Wenn Sie möchten, dass Text angezeigt wird, wenn Sie irgendwo auf eine PowerPoint-Folie klicken, ist die Einrichtung schnell und einfach. So blenden Sie Text aus, bevor Sie in PowerPoint auf eine Schaltfläche klicken: Öffnen Sie Ihr PowerPoint-Dokument und klicken Sie auf das Menü „Einfügen“. Klicken Sie auf Neue Folie. Wählen Sie „Leer“ oder eine der anderen Voreinstellungen. Klicken Sie immer noch im Menü „Einfügen“ auf „Textfeld“. Ziehen Sie ein Textfeld auf die Folie. Klicken Sie auf das Textfeld und geben Sie Ihre ein

Sperrwartezeitüberschreitung überschritten; versuchen Sie, die Transaktion neu zu starten – So beheben Sie den MySQL-Fehler: Transaktionswartezeitüberschreitung Sperrwartezeitüberschreitung überschritten; versuchen Sie, die Transaktion neu zu starten – So beheben Sie den MySQL-Fehler: Transaktionswartezeitüberschreitung Oct 05, 2023 am 08:46 AM

Lockwaittimeoutexceeded;tryrestartingtransaction – So beheben Sie den MySQL-Fehler: Transaktionswartezeitüberschreitung Bei Verwendung der MySQL-Datenbank kann es manchmal zu einem häufigen Fehler kommen: Lockwaittimeoutexceeded;tryrestartingtransaction. Dieser Fehler weist auf eine Transaktionswartezeitüberschreitung hin. Dieser Fehler tritt normalerweise auf, wenn

MySQL-Transaktionsverarbeitung: Der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung MySQL-Transaktionsverarbeitung: Der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung Mar 16, 2024 am 11:33 AM

MySQL-Transaktionsverarbeitung: Der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung. In der MySQL-Datenbank ist eine Transaktion eine Reihe von SQL-Anweisungen. Entweder sind alle Ausführungen erfolgreich oder alle Ausführungen schlagen fehl, wodurch die Konsistenz und Integrität der Daten sichergestellt wird. In MySQL können Transaktionen in automatische Übermittlung und manuelle Übermittlung unterteilt werden. Der Unterschied liegt im Zeitpunkt der Transaktionsübermittlung und im Umfang der Kontrolle über die Transaktion. Im Folgenden wird der Unterschied zwischen automatischer Übermittlung und manueller Übermittlung ausführlich vorgestellt und spezifische Codebeispiele zur Veranschaulichung gegeben. 1. Automatisch in MySQL übermitteln, wenn es nicht angezeigt wird

So fügen Sie einen Trigger in Oracle hinzu So fügen Sie einen Trigger in Oracle hinzu Dec 12, 2023 am 10:17 AM

In der Oracle-Datenbank können Sie die CREATE TRIGGER-Anweisung verwenden, um Trigger hinzuzufügen. Ein Trigger ist ein Datenbankobjekt, das ein oder mehrere Ereignisse in einer Datenbanktabelle definieren und automatisch entsprechende Aktionen ausführen kann, wenn das Ereignis eintritt.

Auf welcher Ebene ist MySQL-Trigger? Auf welcher Ebene ist MySQL-Trigger? Mar 30, 2023 pm 08:05 PM

MySQL-Trigger erfolgen auf Zeilenebene. Gemäß SQL-Standards können Trigger in zwei Typen unterteilt werden: 1. Trigger auf Zeilenebene, die einmal für jede geänderte Datenzeile aktiviert werden. Wenn eine Anweisung 100 Datenzeilen einfügt, wird der Trigger 100 Mal aufgerufen . Trigger auf Anweisungsebene Der Trigger wird einmal für jede Anweisung aktiviert. Eine Anweisung, die 100 Datenzeilen einfügt, ruft den Trigger nur einmal auf. MySQL unterstützt nur Trigger auf Zeilenebene, keine Trigger auf vorbereiteter Anweisungsebene.

So verwenden Sie MySQL-Trigger, um die automatische Archivierung von Daten zu implementieren So verwenden Sie MySQL-Trigger, um die automatische Archivierung von Daten zu implementieren Aug 02, 2023 am 10:37 AM

So verwenden Sie MySQL-Trigger, um die automatische Archivierung von Daten zu implementieren. Einführung: Im Bereich der modernen Datenverwaltung ist die automatische Archivierung und Bereinigung von Daten eine wichtige und häufige Anforderung. Wenn die Datenmenge zunimmt, wird die Beibehaltung vollständiger Verlaufsdaten übermäßig viel Speicherressourcen beanspruchen und die Abfrageleistung verringern. MySQL-Trigger bieten eine effektive Möglichkeit, diese Anforderung zu erfüllen. In diesem Artikel wird erläutert, wie Sie mithilfe von MySQL-Triggern eine automatische Archivierung von Daten erreichen. 1. Was ist ein MySQL-Trigger? Ein MySQL-Trigger ist eine besondere Art von Speicher.

PHP PDO-Tutorial: Ein Leitfaden für Fortgeschrittene von den Grundlagen bis zur Beherrschung PHP PDO-Tutorial: Ein Leitfaden für Fortgeschrittene von den Grundlagen bis zur Beherrschung Feb 19, 2024 pm 06:30 PM

1. Einführung in PDO PDO ist eine Erweiterungsbibliothek von PHP, die eine objektorientierte Möglichkeit zum Betrieb der Datenbank bietet. PDO unterstützt eine Vielzahl von Datenbanken, einschließlich MySQL, Postgresql, Oracle, SQLServer usw. PDO ermöglicht Entwicklern die Verwendung einer einheitlichen API zum Betrieb verschiedener Datenbanken, wodurch Entwickler problemlos zwischen verschiedenen Datenbanken wechseln können. 2. PDO stellt eine Verbindung zur Datenbank her. Um PDO zum Herstellen einer Verbindung zur Datenbank zu verwenden, müssen Sie zunächst ein PDO-Objekt erstellen. Der Konstruktor des PDO-Objekts erhält drei Parameter: Datenbanktyp, Hostname, Datenbankbenutzername und Passwort. Der folgende Code erstellt beispielsweise ein Objekt, das eine Verbindung zu einer MySQL-Datenbank herstellt: $dsn="mysq

Wie verarbeitet die Java-Datenbankverbindung Transaktionen und Parallelität? Wie verarbeitet die Java-Datenbankverbindung Transaktionen und Parallelität? Apr 16, 2024 am 11:42 AM

Transaktionen gewährleisten die Integrität der Datenbankdaten, einschließlich Atomizität, Konsistenz, Isolation und Haltbarkeit. JDBC verwendet die Verbindungsschnittstelle, um die Transaktionssteuerung bereitzustellen (setAutoCommit, Commit, Rollback). Parallelitätskontrollmechanismen koordinieren gleichzeitige Vorgänge mithilfe von Sperren oder optimistischer/pessimistischer Parallelitätskontrolle, um eine Transaktionsisolation zu erreichen und Dateninkonsistenzen zu verhindern.

See all articles