Heim >Datenbank >MySQL-Tutorial >So wenden Sie Trigger und Transaktionen in der MySQL-Datenbank an
Trigger ist eine Methode, die Programmierern und Datenanalysten zur Verfügung gestellt wird, um die Datenintegrität sicherzustellen. Es handelt sich um eine spezielle gespeicherte Prozedur, die sich auf Tabellenereignisse bezieht und durch Ereignisse ausgelöst wird. Trigger werden häufig verwendet, um Datenintegritätseinschränkungen und Geschäftsregeln durchzusetzen.
Vier Hauptmerkmale:
Atomizität:Konsistenz: Transaktionen müssen die Datenbank von einem Konsistenzzustand in einen anderen Konsistenzzustand ändern, das heißt, eine Transaktion muss vor und nach der Ausführung in einem konsistenten Zustand sein.
Isolierung:
Persistenz:
4. Transaktionsvorgang
Eine Transaktion starten:
SQL-Anweisung ausführen:
: Es tritt ein Problem auf, die Daten werden in den Zustand zurückversetzt, in dem die Transaktion gestartet wurde
CREATE TABLE account( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(20), money DOUBL ); INSERT INTO account VALUES (NULL,'张三',1000),(NULL,'李四',1000); CREATE TABLE account_log( id INT PRIMARY KEY AUTO_INCREMENT, operation VARCHAR(20), operation_time DATETIME, operation_id INT, operation_params VARCHAR(200) );
Transaktionsübermittlungsmethode// 语法格式: BEFORE|AFTER INSERT: 插入 UPDATE:更新 DELETE:删除
// DELIMITER $
// CREATE TRIGGER 触发器名称
// BEFORE|AFTER INSERT|UPDATE|DELETE
// ON 表名
// FOR EACH ROW
// BEGIN
// 触发器要执行的功能;
// END$
// DELIMITER ;
// 创建INSERT型触发器。用于对account表新增数据进行日志的记录
DELIMITER $
CREATE TRIGGER account_insert
AFTER INSERT
ON account
FOR EACH ROW
BEGIN
INSERT INTO account_log VALUES (NULL,'INSERT',NOW(),new.id,CONCAT('插入后{id=',new.id,',name=',new.name,',money=',new.money,'}'));
END $
DELIMITER ;
// 向account表添加一条记录
INSERT INTO account VALUES (NULL, '王五', 2000);
// 查询account表
SELECT * FROM account;
Transaktionsisolationsstufe
Nicht festgeschrieben lesen:
Wiederholbares Lesen:
Serialisierbar
Kann Probleme verursachen:
Dirty Read:
bedeutet Daten in einem anderen Während einer Transaktion wurde eine nicht festgeschriebene Transaktion gelesen , was zu inkonsistenten Abfrageergebnissen zwischen den beiden führt Lesen:Das obige ist der detaillierte Inhalt vonSo wenden Sie Trigger und Transaktionen in der MySQL-Datenbank an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!