Java 如何在不改变mysql'的情况下,在存储在mysql的varchar字段中的程序中使用utf8mb4符号;s场

Java 如何在不改变mysql'的情况下,在存储在mysql的varchar字段中的程序中使用utf8mb4符号;s场,java,php,mysql,Java,Php,Mysql,我想在DB中存储的字段中使用表情符号,比如VARCHARtype。而且我不能将DB编码更改为utf8mb4,因为我需要设置的列用于全文索引(5列被索引,包括text格式的列)。如果我将编码更改为utf8mb4,索引将不支持它(因为此字段占用的字节数将超过可用于索引的字节数)。我怎么做 我认为更改table字符集是正确的做法(如果我完全了解情况的话)。我知道您担心更改表需要多长时间。那么,创建一个包含适当规格的新表,并使用当前规格的insert-into,怎么样?然后,一旦确认数据传输正确,就可以

我想在DB中存储的字段中使用表情符号,比如VARCHARtype。而且我不能将DB编码更改为utf8mb4,因为我需要设置的列用于全文索引(5列被索引,包括text格式的列)。如果我将编码更改为utf8mb4,索引将不支持它(因为此字段占用的字节数将超过可用于索引的字节数)。我怎么做

我认为更改table字符集是正确的做法(如果我完全了解情况的话)。我知道您担心更改表需要多长时间。那么,创建一个包含适当规格的新表,并使用当前规格的
insert-into
,怎么样?然后,一旦确认数据传输正确,就可以删除原始表并重命名新表。

表非常大,而ALTER table会工作很长时间,因此将编码更改为utf8mb4不合适。你能回答这里是否有其他选择吗?当前定义的列是什么编码?现在我使用UTF-8,你的表有多大?你能解释一下这部分吗索引将不支持它(因为此字段占用的字节数将超过可用于索引的字节数)。”?