【发布时间】:2019-02-16 05:13:55
【问题描述】:
关于创建联结/链接表,我对this question 持反对态度。很清楚如何创建联结表,但我关心如何用数据填充联结表。用其他两个表(电影,作家)之间的数据填充联结表(movie_writer_junction)的最简单和/或最佳方法是什么
CREATE TABLE movie
(
movie_id INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
movie_name NVARCHAR(100),
title_date DATE
);
CREATE TABLE writer
(
writer_id INT NOT NULL IDENTITY(1, 1) PRIMARY KEY,
writer_name NVARCHAR(100),
birth_date DATE
);
INSERT INTO movie
VALUES ('Batman', '2015-12-12'), ('Robin', '2016-12-12'),
('Charzard, the movie', '2018-12-12')
INSERT INTO writer
VALUES ('Christopher', '1978-12-12'), ('Craig', '1989-12-12'),
('Ash', '1934-12-12')
CREATE TABLE movie_writer_junction
(
movie_id INT,
writer_id INT,
CONSTRAINT movie_writer_pk
PRIMARY KEY(movie_id, writer_id),
CONSTRAINT movie_id_fk
FOREIGN KEY(movie_id) REFERENCES movie(movie_id),
CONSTRAINT writer_fk
FOREIGN KEY(writer_id) REFERENCES writer(writer_id)
);
最终的联结表当前为空。这是一个简单的例子,你可以手动将数据填充到联结表中,但是如果我有两个数百万行的表,这样的事情是如何完成的呢?
【问题讨论】:
-
从您提供的数据来看是不可能的。
-
您将
insert与要插入的行的键一起使用。 -
大概,您有某种类型的来源,可以告诉您哪个作家写了哪部电影(继续您的示例)-您将根据它编写插入脚本。
标签: sql sql-server database-design relational-database