You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入MySQL导出的SQL文件到PostgreSQL出现语法错误的解决方法

解决MariaDB导出SQL导入PostgreSQL的语法错误问题

错误原因

你遇到的问题核心是MariaDB和PostgreSQL的标识符语法不兼容:MariaDB用反引号`包裹表名、字段名,而PostgreSQL完全不识别这种符号,这直接导致了语法报错。

具体解决步骤

1. 批量替换反引号

用文本编辑器(VS Code、Notepad++都行)打开test1.sql,做全局替换:

  • 如果你的表名、字段名都是合法标识符(不含特殊字符、不是PostgreSQL关键字),直接把所有 (反引号)替换为空,比如把INSERT INTO test1 (idcustomer, ...)改成INSERT INTO test1 (idcustomer, ...)
  • 如果标识符含特殊字符或属于PostgreSQL关键字,就把反引号替换成双引号",比如INSERT INTO "test1" ("idcustomer", ...)

2. 处理其他潜在语法差异

除了反引号,MariaDB的SQL还有不少和PostgreSQL不兼容的地方,需要逐一修正:

  • 数据类型:把INT(11)改成INT;DATETIME换成TIMESTAMP或TIMESTAMPTZ;去掉CHARSET=utf8mb4这类MariaDB专属的字符集声明
  • 自增字段:MariaDB的AUTO_INCREMENT替换成PostgreSQL的GENERATED AS IDENTITY,比如idcustomer INT(11) NOT NULL AUTO_INCREMENT改成idcustomer INT NOT NULL GENERATED ALWAYS AS IDENTITY
  • 插入空值:数值类型的空值要写NULL,别用MariaDB里的''

3. 验证并重新导入

先在psql里单独执行几条语句测试(比如先跑CREATE TABLE),确认没问题后再重新执行导入命令:

psql -h localhost -d test -U postgres -f C:\test1.sql

内容的提问来源于stack exchange,提问作者ADAM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:50:18