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

M1 Mac使用Datagrip连接MySQL建表报错:<type> expected, got 'number'

问题原因与解决方法

报错根源

你写的SQL用了Oracle专属的数据类型(NUMBER、VARCHAR2),但当前连接的是MySQL数据库——不同数据库的SQL语法、数据类型不通用,所以MySQL无法识别这些Oracle类型,导致报错。而Oracle LiveSQL是Oracle官方环境,自然能正常运行这些语法。

什么是SQL方言?

SQL方言就是不同数据库厂商对标准SQL的定制化扩展,比如Oracle、MySQL、PostgreSQL各自有专属的数据类型、函数、语法规则。DataGrip的「SQL方言」设置,是让编辑器匹配当前连接的数据库语法,既不会误报语法错误,也能确保你写的SQL符合目标数据库的执行要求。

具体解决步骤

1. 修改SQL语句适配MySQL

把Oracle专属类型替换成MySQL支持的类型:

  • VARCHAR2(n) → VARCHAR(n)
  • NUMBER:如果是整数用INT,需要精度控制的小数用DECIMAL(精度,小数位数)(比如NUMBER(10,2)对应DECIMAL(10,2))

示例:
Oracle语句:

CREATE TABLE student (
    id NUMBER,
    name VARCHAR2(50),
    score NUMBER(5,2)
);

改成MySQL兼容的语句:

CREATE TABLE student (
    id INT,
    name VARCHAR(50),
    score DECIMAL(5,2)
);

2. 调整DataGrip的SQL方言设置

让编辑器正确识别MySQL语法,消除错误提示:

  • 右键左侧数据库面板中的MySQL连接 → 选择「Properties」(属性)
  • 在「General」标签页,找到「SQL dialect」选项,设置为「MySQL」
  • 或者直接在编辑器顶部的状态栏,找到当前文件的方言标识(比如显示「Oracle」的位置),点击切换为「MySQL」

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:22:42