【发布时间】:2011-04-26 09:27:20
【问题描述】:
我有如下表(Django 模型定义,下面有一个 postgres 数据库):
class Person(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=300)
class Owner(models.Model):
id = models.IntegerField()
person = models.ForeignKey(Person)
我使用 Python 脚本从 CSV 文件设置我的数据库。原始文件列出了具有整数 id 和整数“person”字段的所有者,该字段映射到 Person.id 中的整数。
但是,鉴于 Owner 中的“person”列需要一个 Person 对象,我该如何编写一个原始 SQL 字符串来将值插入 Owner?
owner_id = 665
person_id = 330
sql_string = 'INSERT INTO owner (id, person) VALUES (' +
sql_string += owner_id + ', ' + ???? + ');'
【问题讨论】:
-
为什么
sql_string = 'INSERT INTO owner (structidx, person) VALUES (' + sql_string += owner_id + ', ' + person_id + ');'还不够?只要确保先插入所有 Person 对象,就不会违反 ForeignKey 约束。
标签: sql django postgresql