tidb兼容mysql语法上碰到的大小写异常问题

【TiDB 使用环境】测试/ Poc
【TiDB 版本】7.5.2
【操作系统】centos7.9
【部署方式】机器部署
【集群拓扑】


【客户端版本】
image

【遇到的问题:问题现象及影响】
使用mysql客户端连接tidb server后再test库中尝试执行ddl建表语句发现longtext存在一些语法兼容上的问题,具体尝试过程如下图:


开始以为是版本大小写解析兼容的问题,经过多次尝试发现并不是这样,这是为什么?

你是在尝试解决这问题嘛?https://docs.pingcap.com/zh/tidb/stable/mysql-compatibility

看看lower_case_table_names参数呢?

不是的,我只是没弄清楚为什么几个字符描述的差别,例如图片中的comment内容,也能造成一个可以成功一个不可以

我查看了下,我的tidb中该变量值为2

感觉像是你的空格有点问题,你的sql是从别的地方复制过来的吗?你全部手输试一下

跟大小写应该没关系

有可能是复制粘贴的问题

复制粘贴的时候,可能是输入法的问题。

这个问题的背景来源我大概描述下,再做poc核实dm迁移到tidb的数据后,尝试使用sql-replay来做回放时,再创建下游回放信息表的时候,遇到的问题,原建表语句为:
CREATE TABLE test.replay_info (
sql_text longtext DEFAULT NULL,
sql_type varchar(16) DEFAULT NULL,
sql_digest varchar(64) DEFAULT NULL,
query_time bigint(20) DEFAULT NULL,
rows_sent bigint(20) DEFAULT NULL,
execution_time bigint(20) DEFAULT NULL,
rows_returned bigint(20) DEFAULT NULL,
error_info text DEFAULT NULL,
file_name varchar(64) DEFAULT NULL
);

此时就碰到这个问题了,再经过最初截图的尝试,发现的问题点,但是最终这个建表语句的问题点再哪些兼容细节上,该如何调整呢?

参考地址: 博客 - 从 MySQL 迁移到 TiDB:使用 SQL-Replay 工具进行真实线上流量回放测试 SOP | TiDB 社区

我尝试通过beyond Compare文本比较工具或者noteppad进行比对,并没有复制上的问题,这是截图比对信息:


是不是有啥空格,制表符问题

这是我复制的文本比对结果

没有发现多余空格和制表符的问题

我尝试将所有空格删除敲了一遍,发现确实是制表符的问题,校对和正则文本比对无法解析出来,再通过文本编码转码为ANSI编码时,发现了异常,感谢!

客气,解决问题就好

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。