【发布时间】:2014-11-02 04:12:30
【问题描述】:
我正在尝试创建一个审核触发器,将 blob 数据作为长文本数据类型插入。
当我使用 select 时,我看到了图像的内容,但是当我使用相同的格式插入时,它显示为空白。
作品:数据显示图片的原始内容
select cast(my_image as char) as data from MyTable
不起作用:数据列显示为空白(0 字节)
insert into MyAuditTable (data) values ( cast(NEW.my_image as char) )
更新:9 月 12 日 我试图通过一个函数希望通过显式指定类型来实现它,但是那里也没有运气
CREATE FUNCTION `BLOB2TXT`(dablob LONGBLOB) RETURNS LONGTEXT
NO SQL
DETERMINISTIC
BEGIN
RETURN CAST(dablob AS CHAR CHARACTER SET utf8);
END
如果有人想看看或想使用我拥有的东西,我在 github 上发布了我的项目。随时欢迎你:)
https://github.com/hotmit/mysql-sp-audit
现在唯一给我希望的是 Hex(blob) 但是当我 UNHEX() 时数据不可读。
【问题讨论】:
-
你用CONVERT()试过了吗?
-
我尝试按原样进行投射、转换、插入。所有这些都以空白结尾。
-
请说明您的 github 项目中哪个表代表 MyTable 以及哪些字段是 date, my_image ?看什么文件?
-
"MyTable" 只是一个测试表,它在我的 github 项目中不存在。基本上我想转换图像并将其存储在 zaudit_meta 的 old_value 列中。
-
@DuD。 - 在看到这篇文章之前,我刚刚看到了你的 github 仓库。试了一下,并按预期工作。非常感谢您的宝贵时间。也为你的仓库加注星标!