我尝试创建审核触发器,将blob数据作为longtext数据类型插入。
当我使用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()时数据不可读。
答案 0 :(得分:1)
您可以尝试以下方法:
INSERT INTO zaudit_meta(audit_id, col_name)
SELECT 0
,CAST(my_image AS CHAR)
如果您的SELECT
查询正常,则此解决方案应该有效。
希望这会有所帮助。