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

MySQL中创建Horse表执行失败,如何编写符合约束的建表SQL语句?

MySQL Horse表创建实现

表字段规则与约束

  • ID:取值范围0到65000的整数,自增,主键
  • RegisteredName:最大长度15的可变长字符串,非NULL
  • Breed:最大长度20的可变长字符串,取值只能为以下之一:Egyptian Arab、Holsteiner、Quarter Horse、Paint、Saddlebred
  • Height:3位有效数字、1位小数的数值,需满足≥10.0且≤20.0
  • BirthDate:日期类型,需≥2015年1月1日

初始错误建表代码

CREATE TABLE horse (
    ID SMALLINT AUTO_INCREMENT PRIMARY KEY,
    RegisteredName VARCHAR(15) NOT NULL,
    Breed VARCHAR(20), CHECK (Breed="Egyptian Arab" "Holsteiner" "Quarter Horse" "Paint" "Saddlebred")
    Height DECIMAL(3,1) CHECK (Height=>10.0) CHECK (Height<=20.0),
    BirthDate DATE CHECK (BirthDate=>"Jan 1, 2015")
);

修正后可正常执行的建表代码

CREATE TABLE Horse (
    ID SMALLINT *UNSIGNED* AUTO_INCREMENT PRIMARY KEY,
    RegisteredName VARCHAR(15) NOT NULL,
    Breed VARCHAR(20) CHECK (Breed="Egyptian Arab" "Holsteiner" "Quarter Horse" "Paint" "Saddlebred")*,*
    Height DECIMAL(3,1) CHECK *(Height between 10.0 AND 20.0)*,
    BirthDate DATE CHECK *(BirthDate >='2015-01-01')*
);

调整说明

  • 第2行添加UNSIGNED关键字,保证ID取值范围符合0到65000的要求
  • 第4行调整逗号位置,修复语法错误
  • 第5行删除多余的CHECK语句,将格式错误的不等式改用BETWEEN改写,逻辑更简洁
  • 第6行修正为MySQL支持的标准日期格式,避免日期解析错误

修正完成后即可在MySQL Workbench中成功执行代码,新表会自动添加到左侧边栏的对应schema中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:54:05