审核触发器,将Blob插入为LongText

时间:2014-09-08 20:36:30

标签: mysql sql triggers

我尝试创建审核触发器,将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()时数据不可读。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

INSERT INTO zaudit_meta(audit_id, col_name)
SELECT 0
    ,CAST(my_image AS CHAR)

如果您的SELECT查询正常,则此解决方案应该有效。

希望这会有所帮助。