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

MariaDB执行CREATE TABLE报1064语法错误,求助排查

问题分析与解决

你的SQL语句存在两处语法错误,直接导致了1064报错:

  1. DOUBLE类型定义不符合规范
    DOUBLE(100000)的写法错误,DOUBLE类型的正确格式是DOUBLE(M,D)——M代表总位数(最大255),D代表小数位数(最大30)。如果不需要指定精度,直接写DOUBLE即可;若要固定精度(比如保留两位小数),可写DOUBLE(18,2)。另外你填写的100000远超过M的最大值255,这也是触发错误的原因之一。

  2. DATE类型默认值设置非法
    DATE NOT NULL DEFAULT CURRENT_TIMESTAMP不合法,DATE类型无法使用CURRENT_TIMESTAMP作为默认值。如果需要默认当前日期,可改用CURDATE();或者将字段类型改为TIMESTAMP/DATETIME,这两种类型支持CURRENT_TIMESTAMP作为默认值。

修正后的SQL语句

方案一:保留DATE类型,使用CURDATE()做默认值

CREATE TABLE `balancemapper`.`homedata` (
    `cash` DOUBLE(18,2) NULL , 
    `cashExp` VARCHAR(30) NOT NULL DEFAULT 'غير معروف' , 
    `cashDate` DATE NOT NULL DEFAULT CURDATE() , 
    `cashComms` VARCHAR(100) NOT NULL DEFAULT 'لا يوجد' , 
    PRIMARY KEY (`cash`)
) ENGINE = InnoDB;

方案二:改用TIMESTAMP类型存储日期

CREATE TABLE `balancemapper`.`homedata` (
    `cash` DOUBLE NULL , 
    `cashExp` VARCHAR(30) NOT NULL DEFAULT 'غير معروف' , 
    `cashDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , 
    `cashComms` VARCHAR(100) NOT NULL DEFAULT 'لا يوجد' , 
    PRIMARY KEY (`cash`)
) ENGINE = InnoDB;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:54:18