dumpling导出schema后用lightning导入时发生Error 1064: You have an error in your SQL syntax

【 TiDB 使用环境】测试
【 TiDB 版本】v6.5.0

dumpling导出schema后用lightning导入时发生Error 1064: You have an error in your SQL syntax,但ddl本身无错误

nohup tiup dumpling -u ?-p ? -P 4000 -h 127.0.0.1 -d -o $dump_dir --filter ‘dcdb.*’ > $dump_dir/dumpling-out.log &

[mydumper.csv]
separator = ‘~@’
delimiter = ‘"’
header = true
not-null = false
null = ‘\N’
backslash-escape = true

nohup tiup tidb-lightning -config tidb-lightning.toml -d ? 2>&1 &

lightning 提示:

[2024/02/22 14:03:06.672 +08:00] [WARN] [restore.go:537] [“failed to rewrite statement, will use raw input instead”][“run create schema job failed with no retry”]

[2024/02/22 14:03:07.067 +08:00] [ERROR] [restore.go:785] [“restore all schema failed”] [takeTime=437.05098ms] [error="[Lightning:Restore:ErrCreateSchema]create schema failed, table: dcdb_1.MR_TZ_FUNDACCTLINK, stmt: restore table schema: run create schema job failed: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 1 column 33 near ""MR_TZ_FUNDACCTLINK" (\n"PROJECTID" int(11) NOT NULL DEFAULT ‘0’,\n"FUNDACCTTYPE" char(1) NOT NULL DEFAULT ’ ',\n"FUNDACCT" varchar(32) NOT NULL,\n"DEFAULTFLAG" char(1) NOT NULL DEFAULT ’ ',\nPRIMARY KEY ("PROJECTID","FUNDACCT") /*T![clustered_index] CLUSTERED */,\nUNIQUE KEY "FUNDACCTLINK_UNIQUE_INDEX" ("PROJECTID","FUNDACCTTYPE")\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;" "]

导出导入是同一个版本的 tidb 集群吗?

是同一个集群,从一个database导出到另一个

看下文本中MR_TZ_FUNDACCTLINK这个关键字前面是不是有什么特殊符号

你把 create table 的sql 拿出来单独执行是可以的?

没有特殊符号,我现在怀疑是不是\n和"的问题,我看文档中导出的ddl都是反引号`,但我这里是双引号",但不知道这个是否可以调整?

是的可以执行


lightning导入csv文件,看官方介绍说是表结构需要手动创建

你的表名都是大写的吗?建表的时候都指定用了"MR_TZ_FUNDACCTLINK"—双引号,但是你的delimiter 用的也是‘"’—双引号导致的吧

delimeter应该只是数据里面会用到,但我没有导出数据,只导出了schema,表名都是小写的,但我dumpling导出时没有指定大小写

刚刚尝试sed将所有双引号“替换为反引号`后,发现导入成功了,大概就是因为这个问题,但不知道如何调整dumpling来在导出时就使用反引号?

备份出来的 schema 信息,用的 " ?感觉不对劲。。。不会是 bug 吧。。。
看你备份命令也没啥啊 :thinking:


看起来不一样?

这难道是集群的什么配置导致的么。。请问你跑show create table时的结果也是反引号么?


是的,没啥配置啊 :thinking:


麻了:expressionless:

找到原因了,是因为集群sql_mode里面开了ANSI_QUOTES

优秀 :100:

显示为语法异常

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