希望我能解释这不够好......我有一个表叫artists
基本上与2列,artist_pk
(主键)和artist_name
。我使用LOAD DATA INFILE
将artist_name
列的记录通过CSV文件导入表artists
,并让MySQL提供artist_pk
值。这一切都完成了。LOAD DATA INFILE - 拼命卡住
现在我想为我的表导入数据(通过相同的导入方法),名为albums
。这里的三个相关列album_pk
(主),album_name
和artist_pk
(从artists
表的外键)。再次,我将让mySQL分配album_pk
值。
在我的CSV数据中有album_name和artist_name。我没有artist_pk值。所以我的问题是:我可以导入artist_name CSV列作为我的tables
导入的一部分,但不是按原样使用它,请指示mySQL使用artists
表中的关联artist_pk
PRIMARY KEY值?
例如在artists
表中的记录:
artist_pk | artist_name |
+-----------+--------------+
| 1 | Depeche Mode |
+-----------+--------------+
现在从我的CSV文件(即我希望把我的albums
表)的摘录。
album_name artist_name
Violator Depeche Mode
'违规者'将填充albums.album_name
。但为了填充albums.artist_pk
,我希望MySQL使用'Depeche Mode'(位于artists.artist_name
)去获得其相关值artist_pk
(本例中为1) - 这是表albums
中的值。
在此先感谢!
如果你的名字是保证是独一无二的,你可以做到。否则,你需要另一种方法。 –
与您的问题无关,但当专辑中有多位艺术家时会发生什么? –
@Dan Bracuk谢谢丹,但我卡在方法 - 这是我的问题?如何在执行LOAD DATA INFILE操作时使用artist_name访问artist_pk?重申:你的第二个评论 - 合作将是他们自己的艺术家(例如Christabelle&Lindstrom,他们都是独唱艺人),但汇编将以不同的方式处理 - 我相信这就是为什么iTunes(例如)拥有Artist和专辑艺术家。但是其中一些可以稍后决定......这整个音乐数据库对我来说是学习MySQL的方式的一个有趣的练习! – simien