我有一个包含创建存储过程的过程的转储:
void Main()
{
int[] nums = { 1, 2, 3 };
var persons = nums.Select(n=>new Person{Age=n});
}
但是,当我表演时:
DELIMITER ;
/*!50003 SET character_set_client = utf8 */ ;
/*!50003 SET character_set_results = utf8 */ ;
/*!50003 SET collation_connection = utf8_general_ci */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`sys`@`%` PROCEDURE `test`(_Test bigint )
BEGIN
select * from test;
END ;;
DELIMITER ;
我明白了:
SHOW PROCEDURE STATUS WHERE Name LIKE '%test%'\G;
为什么*************************** 1. row ***************************
Db: TEST
Name: test
Type: PROCEDURE
Definer: root@%
Modified: 2018-02-22 23:25:27
Created: 2018-02-22 23:25:27
Security_type: DEFINER
Comment:
character_set_client: utf8
collation_connection: utf8_general_ci
Database Collation: latin1_swedish_ci
表示Database Collation
?
答案 0 :(得分:0)
对于表情符号,您需要utf8mb4
,而不是utf8
或latin1
。
我认为Database Collation
不是问题。
答案 1 :(得分:0)
在您的表中,测试(以及所有其他表)必须更改字符集:
alter table test character set utf8mb4;
还包含文字的字段:
alter table test change varchar_column varchar_column varchar(XX)
character set utf8mb4;