執行跨表插入 INSERT INTO 表2 SELECT * FROM 表1 時拋出 Incorrect string value 錯誤,目標表數據變為問號。根因是源表與目標表列級字符集不一致。
Collation = gbk_chinese_ci(或 gbk)。Collation = latin1_swedish_ci(或 latin1)。

將目標表相關列字符集修改為與源表一致(如 gbk):
ALTER TABLE 表2 MODIFY 列名 列類型 CHARACTER SET gbk COLLATE gbk_chinese_ci;
-- 或整表轉換
ALTER TABLE 表2 CONVERT TO CHARACTER SET gbk;

CHARSET 與 COLLATE,避免依賴服務器默認值(不同版本/安裝方式默認值可能不同)。SHOW CREATE TABLE 對比字符集定義。characterEncoding=utf8(或業務約定字符集),確保傳輸層編碼一致。