鲜花网站建设项目策 划书,互联网公司名称大全,网络空间的三个特点包括哪些,企业管理咨询是一种MySQL—触发器
将两个关联的操作步骤写到程序里面#xff0c;并且要用事务包裹起来#xff0c;确保两个操作称为一个原子操作#xff0c;要么全部执行#xff0c;要么全部不执行
创建一个触发器#xff0c;让商品信息数据的插入操作自动触发库存数据的插入操作
…MySQL—触发器
将两个关联的操作步骤写到程序里面并且要用事务包裹起来确保两个操作称为一个原子操作要么全部执行要么全部不执行
创建一个触发器让商品信息数据的插入操作自动触发库存数据的插入操作
触发器是由 事件来触发 某个操作这些事件包括 INSERT 、 UPDATE 、 DELETE 事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序当数据库执行这些语句时候就相当于事件发生 了就会 自动 激发触发器执行相应的操作。
创建触发器
CREATE TRIGGER 触发器名称
{BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表明
FOR EACH ROW
触发器执行语句说明
表名 表示触发器监控的对象。BEFORE|AFTER 表示触发的时间。BEFORE 表示在事件之前触发AFTER 表示在事件之后触发。INSERT|UPDATE|DELETE 表示触发的事件。 INSERT 表示插入记录时触发UPDATE 表示更新记录时触发DELETE 表示删除记录时触发。 触发器执行的语句块 可以是单条SQL语句也可以是由BEGIN…END结构组成的复合语句块。
DELIMITER //CREATE TRIGGER before_insert_test_tri
BEFORE INSERT ON test_trigger
FOR EACH ROW
BEGININSERT INTO test_trigger_log(t_node)
VALUES(before insert);END //
DELIMITER ;INSERT INTO test_trigger(t_node)
VALUES(test..);SELECT * FROM test_trigger;
SELECT * FROM test_trigger_log;DELIMITER //
CREATE TRIGGER salary_check_trigger
BEFORE INSERT ON emp
FOR EACH ROW
BEGINDECLARE mgr_sal DOUBLE;SELECT salary INTO mgr_sal FROM empWHERE employee_id NEW.manager_id;IF NEW.salary mgr_salTHEN SIGNAL SQLSTATE HY000 SET MESSAGE_TEXT 薪资不得高于领导薪资;END IF;
END //
DELIMITER ;DESC emp;INSERT INTO emp(employee_id,last_name,email,hire_date,job_id,salary,manager_id)
VALUES(300,test,tom126.com,CURDATE(),AD_VP,10000,103);查看触发器
查看当前数据库所有触发器的定义
mysql SHOW TRIGGERS\G;
*************************** 1. row ***************************Trigger: salary_check_triggerEvent: INSERTTable: empStatement: BEGINDECLARE mgr_sal DOUBLE;SELECT salary INTO mgr_sal FROM empWHERE employee_id NEW.manager_id;IF NEW.salary mgr_salTHEN SIGNAL SQLSTATE HY000 SET MESSAGE_TEXT 薪资不得高于领导薪资;END IF;
ENDTiming: BEFORECreated: 2023-02-28 15:46:44.71sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONDefiner: root%
character_set_client: utf8
collation_connection: utf8_general_ciDatabase Collation: utf8_general_ci
查看当前数据库中某个触发器的定义
SHOW CREATE TRIGGER salary_check_trigger\G;从系统库information_schema的TRIGGERS表中查询“salary_check_trigger”触发器的信息。
SELECT * FROM information_schema.TRIGGERS\G;删除触发器
DROP TRIGGER salary_check_trigger触发器优缺点
优点
可以确保数据的完整性可以帮助记录操作日志可以用在操作数据前对数据进行合法性检验
缺点
可读性差 ER salary_check_trigger ### 触发器优缺点#### 优点- 可以确保数据的完整性
- 可以帮助记录操作日志
- 可以用在操作数据前对数据进行合法性检验#### 缺点- 可读性差
- 相关数据的变更可能会导致触发器错误