我需要使用csv文件填充数据库。外键实现为xid REFERENCES table1 NOT NULL
。现在,我需要使用第一张表中的xid
填充第二张表中的cid
。
表格是这样设置的
表1:
xid SERIAL Primary KEY
country VARCHAR(256)
表2:
yid SERIAL Primary KEY
building VARCHAR(256)
country VARCHAR(256)
xid REFERENCES country NOT NULL
我使用csv文件填充了table1
。现在我的问题是我无法将xid
放入table2
中。
我正在将Python与import csv
和import psycopg2
答案 0 :(得分:0)
我建议创建一个临时表来加载数据:
CREATE TEMPORARY TABLE temp_building (building VARCHAR(256), country VARCHAR(256)) ON COMMIT DROP;
将数据加载到此临时表中,然后加载table2:
INSERT INTO table2 (building, country, xid)
SELECT building, country, xid
FROM table2
JOIN temp_building on temp_building.country = table2.country;
然后,提交您的事务,临时表将被删除。
但是,我强烈建议您不要将country列放入table2中。数据已经在表1中,因此请不要重复。