mysql触发器问题

1,创建触发器:t_afterinsert_on_tab1 作用:增加tab1表记录后自动将记录增加到tab2表中 CREATE TRIGGER t_afterinsert_on_tab1 AFTER INSERT ON tab1 FOR EACH ROW BEGIN if new.tab1_id is not null then insert into tab2(tab2_id) values(new.tab1_id);end if;END;2,创建触发器:...
mysql触发器问题
1,创建触发器:t_afterinsert_on_tab1
作用:增加tab1表记录后自动将记录增加到tab2表中

CREATE TRIGGER t_afterinsert_on_tab1
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
if new.tab1_id is not null then
insert into tab2(tab2_id) values(new.tab1_id);
end if;
END;

2,创建触发器:t_afterdelete_on_tab1
作用:删除tab1表记录后自动将tab2表中对应的记录删去
CREATE TRIGGER t_afterdelete_on_tab1
AFTER DELETE ON tab1
FOR EACH ROW
BEGIN
delete from tab2 where tab2_id=old.tab1_id;
END;

2,创建触发器:t_afterupdate_on_a
作用:修改a表age字段后自动将b表中对应的age字段修改
CREATE TRIGGER t_afterupdate_on_a
AFTER UPDATE ON a
FOR EACH ROW
update b set age=NEW.age where id=NEW.id;2011-05-31
给你个简单的例子
CREATE TABLE a (id int);
CREATE TABLE b(id int);

CREATE TRIGGER TG_a_INSERT AFTER INSERT ON a FOR EACH ROW
BEGIN
INSERT INTO B(id)
VALUES(NEW.id);
END

INSERT INTO a VALUES(1);

SELECT * FROM b;

+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec)

可见a中插入的数据被触发到b中了
当然这是INSERT触发器
如果需要DELETE触发器,将INSERT改为DELETE,NEW改为OLD
CREATE TRIGGER TG_A_DELETE AFTER DELETE ON a FOR EACH ROW
BEGIN
INSERT INTO B(id)
VALUES(OLD.id);
END

UPDATE触发器
CREATE TRIGGER TG_A_UPDATE AFTER UPDATE ON a FOR EACH ROW
BEGIN
INSERT INTO B(id)
VALUES(OLD.id);
END2011-05-31
create trigger A_Ins_Del
on A
for insert,delete
as
declare @x int,@y int
select @x=A.改变的属性 from inserted
select @y=A.改变的属性 from deleted
if(@x<>0 or @y<>0)
update B SET B.属性=B.属性+@x or update B set B.属性=B.属性-@y
else
GO2011-05-31
mengvlog 阅读 8 次 更新于 2025-07-20 07:58:27 我来答关注问题0
  • MySQL触发器中可能遇到的问题通常与SQL语句的兼容性和数据库环境差异有关。以下是一些可能的原因和解决方案:SQL语句兼容性:不同数据库环境差异:在不同的数据库服务器上,相同的SQL语句可能会因为数据库版本、配置或严格模式的不同而产生不同的行为。例如,某些数据库可能允许某些语法错误或宽松处理,而...

  •  翡希信息咨询 mysql存储过程 和 触发器的优缺点 问题

    触发器的缺点: 复杂性增加:触发器在特定事件发生时自动执行,这可能导致数据库逻辑的复杂性增加,难以调试和维护。 性能影响:触发器的执行时机和触发条件可能导致数据库性能下降,特别是在高并发场景下。 调试困难:由于触发器是自动执行的,且往往涉及多个表和复杂的业务逻辑,因此在出现问题时调试起来相...

  • 有几种方法可以解决这些问题。首先,不要将触发器与事务一起使用,使用触发器时单独进行相关操作。其次,使用“READ-COMMITTED”隔离级别,可以阻止系统读取未提交的数据,从而避免脏读。最后,设置触发器执行完后立即提交事务,可以避免出现故障无法进行修改的情况。尽管MySQL触发器在数据库设计和管理方面具有...

  • 解决MySQL触发器添加出错问题,通常有两种方法。一种简便的方法是使用MySQL的内置工具检查和修复表。执行`check table`命令检查表状态,若显示"Status is OK"则无需修复。如果显示有错误,使用`repair table`命令进行修复。修复后再次执行`check table`以确认状态。在新版phpMyAdmin中同样能使用check/repair功...

  • 在使用MySQL数据库时,我们常常需要用到触发器。然而,有时在创建触发器的时候会遇到一些问题,如无法创建触发器。本文将介绍一些常见的MySQL无法创建触发器的情形及其解决方法。1. 触发器有语法错误 创建触发器时,如果SQL语句中存在语法错误,MySQL是无法识别并创建触发器的。此时,我们需要仔细检查SQL语句...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部