【发布时间】:2020-12-10 15:30:08
【问题描述】:
假设我有一个名为“objects.csv”(第一行 = 标题)的两列 CSV 文件,其中包含以下几行:
colour,object
red,apple
blue,sky
blue,sea
red,plane
green,grass
red,car
red,ship
blue,pool
blue,towel
red,raincoat
green,hat
green,jumper
green,lawnmower
red,strawberry
red,cherry
blue,icicle
我有一个数据库,其中包含使用以下 SQL 脚本创建的两个相关表:
CREATE TABLE public.colours (
colour_id serial NOT NULL,
colour text NOT NULL,
CONSTRAINT colours_pkey PRIMARY KEY (colour_id)
);
CREATE TABLE public.objects (
object_id serial NOT NULL,
object text NOT NULL,
CONSTRAINT objects_pkey PRIMARY KEY (object_id),
objects_colour_id_fkey integer REFERENCES colours(colour_id)
);
colours 表包含以下值:
colour_id,colour
1,red
2,green
3,blue
我需要将 CSV 文件导入数据库,以便将第一个 CSV 列中的颜色值“替换”为颜色表中的关联外键,因此对象表将包含:
1,apple
3,sky
3,sea
1,plane
2,grass
1,car
1,ship
3,pool
3,towel
1,raincoat
2,hat
2,jumper
2,lawnmower
1,strawberry
1,cherry
3,icicle
它将一个平面文件导入到两个规范化的“相关”表中。
我该如何实现?
【问题讨论】:
标签: database postgresql csv import foreign-keys