56,687
社区成员
发帖
与我相关
我的任务
分享
DROP TRIGGER if EXISTS qweqwe;
DROP TABLE if EXISTS tbl_eeeeeee;
DROP TABLE IF EXISTS strud_name;
CREATE TABLE strud_name (
`id` int(11) NOT NULL,
`class` int(11) NOT NULL,
`name` varchar(5) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE tbl_eeeeeee(
`uuid` int(11) NOT NULL AUTO_INCREMENT COMMENT '从数据库主键id',
`error` varchar(10) NOT NULL COMMENT '错误代码',
`report_time` datetime NOT NULL COMMENT '异常生成时间',
`rec_status` varchar(10) NOT NULL COMMENT '异常生成状态',
`disposechart` varchar(20) NOT NULL COMMENT '异常生成表',
`anomalydomain` varchar(20) NOT NULL COMMENT '异常告警域',
PRIMARY KEY (`uuid`)
);
DELIMITER $$
CREATE TRIGGER qweqwe
before INSERT ON strud_name FOR EACH ROW
BEGIN
DECLARE code CHAR(5) DEFAULT '00000';
DECLARE msg TEXT;
DECLARE rows INT;
DECLARE result TEXT;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1
code = RETURNED_SQLSTATE, msg = MESSAGE_TEXT;
END;
IF code = '00000' THEN
-- 数据插入成功 记录这条记录
INSERT INTO tbl_eeeeeee(error,report_time,rec_status,disposechart,anomalydomain)VALUES('00000',NOW(),'OK','异常生成表','异常告警域');
ELSE
-- 可是数据插入失败,没有记录这条记录。
INSERT INTO tbl_eeeeeee(error,report_time,rec_status,disposechart,anomalydomain)VALUES('66666',NOW(),'no','异常生成表','异常告警域');
END IF;
insert into test.strud_name (id,class,name)VALUES(new.id,new.class,new.name);
END
$$
DELIMITER;
-- 重复插入第二次数据的时候会提示错误 可sql是先执行触发器 后实现sql语句
insert into strud_name (id,class,name)VALUES(1,2,'123');
select * from strud_name;
select * from tbl_eeeeeee;