【发布时间】:2021-12-23 08:30:33
【问题描述】:
我有 3 张桌子:
event,event_type,patient
event_type 和 patient 都是事件表的外键。
event fields:id, event_type(foreign key),event_unit, event_value,event_time, patient(foreign key)
event_type fields: id, name
patient fields : patient_id ,patient_name
我有一个 csv 文件 events.csv:
import csv
with open(r'/Users/williaml/Downloads/events.csv') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',' ,quotechar=' ')
for row in spamreader:
print(row)
输出是:
['"PATIENT ID', 'PATIENT NAME', 'EVENT TYPE', 'EVENT VALUE', 'EVENT UNIT', 'EVENT TIME"']
['"1', 'Jane', 'HR', '82', 'beats/minute', '2021-07-07T02:27:00Z"']
['"1', 'Jane', 'RR', '5', 'breaths/minute', '2021-07-07T02:27:00Z"']
['"2', 'John', 'HR', '83', 'beats/minute', '2021-07-07T02:27:00Z"']
['"2', 'John', 'RR', '14', 'breaths/minute', '2021-07-07T02:27:00Z"']
['"1', 'Jane', 'HR', '88', 'beats/minute', '2021-07-07T02:28:00Z"']
['"1', 'Jane', 'RR', '20', 'breaths/minute', '2021-07-07T02:28:00Z"']
['"2', 'John', 'HR', '115', 'beats/minute', '2021-07-07T02:28:00Z"']
['"2', 'John', 'RR', '5', 'breaths/minute', '2021-07-07T02:28:00Z"']
现在我想将这些行插入数据库:
import psycopg2
conn = psycopg2.connect(host='localhost', dbname='patientdb',user='username',password='password',port='')
cur = conn.cursor()
import csv
with open(r'/Users/williaml/Downloads/events.csv') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',' ,quotechar=' ')
for row in spamreader:
INSERT INTO event (patient_id, patient_name, event_type, event_value ,event_unit, event_time) VALUES ( row[0],row[1],row[3],row[4],row[5])
收到错误:
psycopg2.errors.UndefinedColumn: column "patient_name" of relation "event" does not exist
我认为原因是我不能直接插入整行,因为值属于不同的表。
有朋友可以帮忙吗?
【问题讨论】:
-
将适当的值放入适当的表中。
标签: python sql database postgresql foreign-keys