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

我的MySQL创建表语句存在何种语法错误?

你的MySQL建表语句的语法错误分析

嘿,我来帮你定位这条SQL里的问题,主要有两个点需要注意:

  • 核心语法错误:DOUBLE类型的精度定义错误
    MySQL中DOUBLE类型如果要指定精度,必须遵循DOUBLE(M, D)的格式——其中M是整数+小数部分的总位数,D是小数部分的位数。你写的double(100)只指定了总位数,缺少小数位数参数,这直接触发了#1064语法错误。
    修正示例:如果需要保留2位小数,改成double(100, 2);如果不需要指定精度,也可以直接写DOUBLE。

  • 冗余约束:主键的唯一键重复定义
    你已经将id设为PRIMARY KEY,而MySQL的主键本身就自带非空+唯一的约束,所以后面的UNIQUE KEY idUnique (id)完全是多余的,删掉它不会影响功能,还能简化表结构。

修正后的完整SQL语句

CREATE TABLE IF NOT EXISTS `creditors` ( 
  `id` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, 
  `name` varchar(50) NOT NULL, 
  `route` varchar(255) NOT NULL, 
  `mobile` int(10) NOT NULL, 
  `credit_amount` double(100,2) NOT NULL, 
  `start_date` date NOT NULL, 
  `due_date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:23:26