我有Django模型如下:
class TraxioRelations(models.Model):
corgemeente = models.CharField(max_length=100, null=True)
coradres = models.CharField(max_length=255, null=True)
corhuisnr = models.CharField(max_length=10, null=True, blank=True)
现在我想将csv文件中的记录添加到该模型中。 csv文件如下:
我使用copy
命令如下:
COPY master_traxiorelations(corgemeente, coradres, corhuisnr)
FROM '/path/to/file.csv' CSV HEADER delimiter ';' encoding 'ISO-8859-1';
当我执行它时,我收到如下错误:
[2017-08-21 15:50:49] [22P04] ERROR: extra data after last expected column
但是当我添加id
到copy
命令时,COPY master_traxiorelations(id, corgemeente, coradres, corhuisnr)
还csv
文件:
然后它工作正常。
如何将数据从文件添加到数据库,而无需将id添加到copy命令和csv文件?
答案 0 :(得分:0)
我解决了将id
添加到模型中的问题,如下所示:
id = models.AutoField(primary_key=True)
添加id = models.AutoField(primary_key=True)
可以自动增加id。因此我的模型看起来像:
class TraxioRelations(models.Model):
id = models.AutoField(primary_key=True)
corgemeente = models.CharField(max_length=100, null=True)
coradres = models.CharField(max_length=255, null=True)
corhuisnr = models.CharField(max_length=10, null=True, blank=True)
然后copy
命令无法在csv文件中添加id列。
COPY master_traxiorelations(corgemeente, coradres, corhuisnr)
FROM '/path/to/file.csv' CSV HEADER delimiter ';' encoding 'ISO-8859-1';
希望如果其他人遇到同样的问题,这会有所帮助。