事情是这样的,一开始是在 mysql5.6 的版本上,使用触发器+存储过程的组合,是正常的; 后来公司一次升级把 mysql 换成了 5.7 版本,然后就失效了,求助是 mysql5.7 在这方面有什么限制吗 之前在另一个 5.7 环境执行 sql 时,提醒过 binlog 的问题,不知道和这个时候有关系,是否需要额外的参数设置 希望各位大佬指点一下
附上脚本
触发器脚本:
CREATE TRIGGER tg_tab_name_insert
AFTER INSERT ON table
FOR EACH ROW
BEGIN
CALL p_sync_data('tab_user_order','id',NEW.id,1);
END;
存储过脚本:
CREATE PROCEDURE p_sync_data
(
IN var_tb_name
varchar(50),
IN var_tb_key
varchar(50),
IN var_tb_key_value
varchar(50),
IN var_op
int(1)
)
BEGIN
DECLARE var_enable INT(1);
SELECT enable INTO var_enable FROM tb_ctrl WHERE tb_name=var_tb_name;
IF var_enable IS NOT NULL AND var_enable = 1 THEN
INSERT INTO tb_data_sync(id,sync_tb_name,sync_tb_key,tb_key_value,sync_op,created)
VALUES (UUID(),var_tb_name,var_tb_key,var_tb_key_value,var_op,f_current_timestamp());
END IF;
END;
时间戳的函数脚本:
CREATE FUNCTION f_current_timestamp
() RETURNS bigint(20)
BEGIN
DECLARE r_timstamp BIGINT(20);
SELECT REPLACE(unix_timestamp(current_timestamp(3)),'.','') INTO r_timstamp;
RETURN r_timstamp;
END;
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.