如何为MySQL存储过程参数设置utf8mb4?

时间:2018-10-28 05:39:52

标签: mysql

我有一个存储过程如下:

CREATE PROCEDURE `test`(
IN inTag varchar(767)   -- Hashtag
)
BEGIN
SET NAMES 'utf8mb4';
INSERT INTO test_table (s)
VALUES (inTag);
END

我尝试致电:

call registration.HT_test('fanart');

但返回

  

警告1300无效的utf8mb4字符串:“ fanart ...” 1366错误的字符串值:“ \ xF0 \ x9F \ x8E \ xA8”。

我认为问题在于参数,但我不知道如何解决。

我的项目正在使用NodeJS,并将数据发送到MySQL存储过程。请告诉我如何解决此问题?

1 个答案:

答案 0 :(得分:1)

您需要为参数定义字符集:

CREATE PROCEDURE `test`(
IN inTag varchar(767) CHARACTER SET utf8mb4
)
BEGIN
INSERT INTO test_table (s)
VALUES (inTag);
END