小编pmc*_*try的帖子

进程列表将“%”显示为来自触发器的主机

我试图用调用者的主机/IP 填充表中的某个列。我在表上有一个插入触发器,它像这样设置列:

CREATE TRIGGER access_insert_trg BEFORE INSERT ON access
FOR EACH ROW 
set NEW.hostname = (select SUBSTRING_INDEX(host,':',1)
                    from information_schema.processlist 
                    WHERE ID=connection_id())
;
Run Code Online (Sandbox Code Playgroud)

%尽管当我在processlist表上手动运行相同的查询时,我得到了实际的主机名,但我最终还是得到了主机名。我已经检查了该connection_id()值,它是在主机列中processlist具有实际hostname:port值的行的 id 正确。

我无法弄清楚它是如何或为什么被转换为通用%:<port>值的。关于发生了什么以及如何解决它的任何想法?

如果有任何改变,我正在使用 MySQL 5.1.57。

mysql trigger insert

3
推荐指数
1
解决办法
2452
查看次数

标签 统计

insert ×1

mysql ×1

trigger ×1