如何解决如何获得新的 MySQL触发器上动态值/插入后?
我需要在MySql中使用use触发器创建一个日志表。我成功获得了列名。我如何动态获取列插入值?例如,我想使用NEW。@ current_column_name。但是它给出了语法错误。 (错误:找不到列名)。
我需要显示此结果:{“ id”:“ 1”,“ product_code”:“ 12”,“ product_name”:“ test_name”}} json键是我的列名。
我的sql是;
BEGIN
DECLARE is_done INT DEFAULT 0;
DECLARE s_name varchar(100) DEFAULT "";
DECLARE my_cursor CURSOR FOR
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'stock';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET is_done=1;
SET @json="{";
OPEN my_cursor;
get_list:LOOP
FETCH my_cursor INTO s_name;
IF is_done=1 THEN
LEAVE get_list;
END IF;
SET @json =CONCAT(@json,"""",s_name,":",NEW.@s_name,",");
END LOOP get_list;
CLOSE my_cursor;
SET @json =CONCAT(@json,"}");
INSERT INTO log_new(`table_name`,`table_row_id`,`old_json`)
VALUES ('stock',NEW.id,@json);
END
我从以下网站获得支持的网站:https://www.javatpoint.com/mysql-cursor
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。