你问的问题的答案是否定的,你不能在表标识符中使用表情符号,至少在当前版本的MySQL中不能(从8.3版开始).
mysql> create table `my😊table` ( i int );
Query OK, 0 rows affected, 1 warning (0.02 sec)
mysql> show warnings;
+---------+------+-----------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------------------------------+
| Warning | 1300 | Cannot convert string 'my\xF0\x9F\x98\x8A...' from utf8mb4 to utf8mb3 |
+---------+------+-----------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| my?table |
+----------------+
https://dev.mysql.com/doc/refman/8.0/en/identifiers.html表示:
带引号的标识符中允许的字符包括完整的Unicode Basic多语言平面(BMP),U+0000除外
BMP是UTF-8的子集,对应于MySQL的utf8mb3字符集.补充多语言平面(SMP)是UTF-8的完整范围,它对应于MySQL的utf8mb4字符集.
基本上,从MySQL8.3开始,INFORMATION_SCHEMA表仍然使用utf8mb3,只支持基本的多语种平面.我预计这种情况最终会改变,因为他们似乎正在逐步淘汰utf8mb3,转而支持utf8mb4,但它将出现在MySQL的某个future 版本中.
表情符号属于补充多语种平面.