【问题标题】:create table of time_slot from database system concept by korth由 korth 从数据库系统概念创建 time_slot 表
【发布时间】:2021-12-22 17:51:44
【问题描述】:

我们都熟悉 Database System ConceptKorth 提供的大学数据集。我要建表

time slot(time slot id, day, start time, end time)粗体字为主键。

我写了创建表命令

create table time_slot(
                       time_slot_id varchar (4),
                       s_day varchar(2),
                       start_time time,
                       end_time time,
                       primary key(time_slot_id,s_day,start_time));

我必须使用的玩具数据集是这样的

insert into time_slot values ('A', 'M', '8', '0', '8', '50');
insert into time_slot values ('A', 'W', '8', '0', '8', '50');
insert into time_slot values ('A', 'F', '8', '0', '8', '50');
insert into time_slot values ('B', 'M', '9', '0', '9', '50');

但我的表创建类型与数据集不匹配。所以我无法插入一行。

任何人都知道我需要更改什么数据类型来创建表。

【问题讨论】:

  • 这个数据集大家可能都比较熟悉,但我从来没有听说过

标签: mysql database time create-table


【解决方案1】:

看起来您的插入具有整数小时和分钟的开始和结束时间,而表具有应提供的 time 类型字段,如 08:00:0009:50:00。更改您的创建表以匹配插入或(推荐)更改您的插入以匹配表。

【讨论】:

  • 我无法更改插入命令。那么create table命令需要做哪些修改呢?
  • 有单独的 int 类型 start_time_hour、start_time_minute、end_time_hour、end_time_minute 列而不是 start_time 和 end_time
  • 当时有报价。那不是 varchar 吗?
  • 也从主键中删除 start_time。也许你想要 start_time_hour 和 start_time_minute 那里?我不清楚为什么主键是什么
  • mysql 会根据需要将其转换为数字。如果您实际上有非数字数据或需要保留前导零或其他内容,请将其设为 varchar,查看您的数据以查看宽度应该是多少
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-06
  • 2018-09-02
  • 2016-03-15
  • 2015-07-06
  • 2012-03-02
  • 2016-12-14
  • 2011-06-07
相关资源
最近更新 更多