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

Korth《数据库系统概念》time_slot表创建插入数据类型匹配问题求解

问题原因

  1. 字段数量不匹配:你现有建表只定义了4个字段,但每条插入语句传入了6个值,测试数据将开始时间拆为小时、分钟两个独立值,结束时间也拆为小时、分钟两个独立值,和你当前单字段存储完整时间的设计不匹配。
  2. 字段类型不匹配:你定义的start_time、end_time为time类型,无法直接匹配测试数据中独立的字符串格式小时、分钟参数。
  3. 字段命名不符合设计要求:你建表时将日期字段命名为s_day,和需求中要求的day字段名不一致。

调整方案

方案1:仅调整表结构,无需修改现有插入SQL

调整字段拆分时分,完全适配现有插入语句,建表语句如下:

create table time_slot(
    time_slot_id varchar (4),
    day varchar(2),
    start_hour varchar(2),
    start_min varchar(2),
    end_hour varchar(2),
    end_min varchar(2),
    primary key(time_slot_id, day, start_hour, start_min)
);

调整说明:

  • 字段名s_day改为day,匹配需求定义
  • 移除原time类型的start_time、end_time字段,拆分为start_hour、start_min、end_hour、end_min四个varchar类型字段,和插入语句的6个参数一一对应
  • 联合主键调整为time_slot_id、day、start_hour、start_min,和原设计中「时间段唯一标识」的逻辑一致

方案2:保留原表结构设计,仅修改插入SQL

如果不想调整表结构,可以将插入语句中的时间拼接为time类型支持的HH:MM格式,修改后的插入语句如下:

insert into time_slot values ('A', 'M', '08:00', '08:50');
insert into time_slot values ('A', 'W', '08:00', '08:50');
insert into time_slot values ('A', 'F', '08:00', '08:50');
insert into time_slot values ('B', 'M', '09:00', '09:50');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:45:04