我有一个MySQL函数,它在指定的字符串中进行一些字符串替换。我简单地使用了这个函数来返回它的论点。
CREATE FUNCTION replace_details(
id INT UNSIGNED,
message VARCHAR(1000))
RETURNS VARCHAR(1000) LANGUAGE SQL
BEGIN
RETURN message;
END;
;;
此函数从before insert
触发器调用,因此插入的字符串被修改。当我使用英文文本时,一切都按预期工作,但是一旦我试图插入其他内容(例如俄语),它就会使我的字符串不可读。实际上我只在数据库中获得?
个签名。如果我在触发器中使用任何其他功能,它可以正常工作
例如:
SET NEW.message = CONCAT(NEW.message, ' test');
但是一旦我使用我的自定义函数实际上什么也没做,但返回它得到的东西,插入的字符串变得不可读。 我想我需要以某种方式指定我的函数与unicode一起工作,但是如何?
MySQL server version: 5.7.1-m11
答案 0 :(得分:1)
我找到了。
CREATE FUNCTION replace_details(
id INT UNSIGNED,
message VARCHAR(1000) CHARACTER SET UTF8)
RETURNS VARCHAR(1000) CHARACTER SET UTF8 LANGUAGE SQL
BEGIN
RETURN message;
END;
;;
作品!