1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > mysql库表的触发器表名_MySQL 触发器 实现不同数据库 不同表名 表结构不同 数据实时同步...

mysql库表的触发器表名_MySQL 触发器 实现不同数据库 不同表名 表结构不同 数据实时同步...

时间:2021-10-03 19:09:13

相关推荐

mysql库表的触发器表名_MySQL 触发器 实现不同数据库 不同表名 表结构不同 数据实时同步...

创建触发器:

CREATETRIGGERtrigger_name

trigger_time

trigger_eventONtbl_name

FOREACH ROW

trigger_stmt

trigger_name:标识触发器名称,用户自行指定;

trigger_time:标识触发时机,取值为 BEFORE 或 AFTER;

trigger_event:标识触发事件,取值为 INSERT、UPDATE 或 DELETE;

tbl_name:标识建立触发器的表名,即在哪张表上建立触发器;

trigger_stmt:触发器程序体,可以是一句SQL语句,或者用 BEGIN 和 END 包含的多条语句。

INSERT触发器

INSERT触发器可以使用NEW.列名 读取插入的新值,也可以修改它。

UPDATE触发器

可以使用 NEW.列名 获取新值,也可以使用 OLD.列名 获取旧值。

DELETE触发器

可以使用 OLD.列名 获取旧表中的值(只读)。

用处:

在BEFORE触发器中进行一些数据的校验工作(大小写、数据类型、格式等)

在AFTER触发器中进行一些后续的统计工作(行数、总数、平均值等)

1. 插入数据:

DELIMITER $

CREATE TRIGGER tr_insert_zcarticlebody AFTER INSERT ON zcarticlebody FOR EACH ROW

BEGIN

-- 插入目标表

INSERT INTO

china_dev.cb_article_body(id,page_titles,body_text,copy_image_flag)

VALUES

(new.ID,new.PageTitles,new.BodyText,new.CopyImageFlag);

END;

$

DELIMITER;

tr_insert_zcarticlebody :触发器名称;

zcarticlebody :建立触发器的表名;

chinabim_dev :数据库名称;

cb_article_body :触发的表名,即目标表名;

2. 更改数据:

DELIMITER $

CREATE TRIGGER tr_update_zcarticlebody AFTER UPDATE ON zcarticlebody FOR EACH ROW

BEGIN

UPDATE china_dev.cb_article_body

SET page_titles = new.PageTitles,body_text = new.BodyText,copy_image_flag = new.CopyImageFlag

WHERE id = new.ID;

END

$

DELIMITER;

tr_insert_zcarticlebody :触发器名称;

zcarticlebody :建立触发器的表名;

chinabim_dev :数据库名称;

cb_article_body :触发的表名,即目标表名;

3. 删除数据:

DELIMITER $

CREATE TRIGGER tr_del_zcarticlebody AFTER DELETE ON zcarticlebody FOR EACH ROW

BEGIN

-- INSE

DELETE FROM china_dev.cb_article_body WHERE id = old.ID;

END

$

DELIMITER ;

COMMIT;

tr_insert_zcarticlebody :触发器名称;

zcarticlebody :建立触发器的表名;

chinabim_dev :数据库名称;

cb_article_body :触发的表名,即目标表名;

Navicat for MySQL

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。