0

我目前有一个课程表,其布局如下。

course_title, course_subject, course_number, instructor, course_id

我需要创建一个新表,然后推送instructor_id,这样我就可以通过教练的外键ID访问该表,但我不确定如何将课程表中的数据转移到新表,例如讲师,并在课程表中创建讲师 ID 字段。我希望这个问题是有道理的。我正在从 microsoft excel 导入一个平面文件。

4

1 回答 1

1

让我们首先定义输出表的模式。该courses表应类似于:

title varchar(100) not null
subject varchar(100) not null
[number] varchar(5) not null unique
id long primary key
instructor_id long not null references instructors (id)

instructors表格应该是:

id autoincrement primary key
[name] varchar(100) not null unique

让我们调用您当前的表courses_old。我可能会偏离一点,但我相信您可以根据自己的需要进行调整。

所以问题是从courses_oldcoursesinstructors。首先我们填表instructors

insert into instructors ([name])
select distinct instructor
from courses_old

然后我们填写courses来自以下的匹配讲师instructors

insert into courses (
  title
, subject
, [number]
, id
, instructor_id
) select
  co.course_title
, co.course_subject
, co.course_number
, co.course_id
, i.id
from courses_old as co
inner join instructors as i
on co.instructor = i.[name]

那应该这样做。但显然你需要验证。最后,删除courses_old表并压缩数据库文件!

或者,courses.id如果您愿意为他们提供所有新 ID,则可以创建一个自动增量字段。这应该是对上述内容的简单调整。

于 2013-09-19T20:57:46.907 回答