gpt4 book ai didi

sql - 如何使用原始 SQL 插入外键字段?

转载 作者:行者123 更新时间:2023-11-29 11:51:06 24 4
gpt4 key购买 nike

我有如下表格(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.id 中的整数。

但是,鉴于 Owner 中的“人员”列需要一个 Person 对象,我该如何编写原始 SQL 字符串以将值插入 Owner?

owner_id = 665
person_id = 330
sql_string = 'INSERT INTO owner (id, person) VALUES (' +
sql_string += owner_id + ', ' + ???? + ');'

最佳答案

您没有说明为什么需要在原始 SQL 中执行此操作。而且我也不明白为什么当你的 PK 字段被称为 id 时你在 SQL 中使用 structidxperson - 以及底层person 的列名是 person_id。所以你的代码应该是:

sql_string = "INSERT INTO owner (`id`, `person_id`) VALUES (%s, %s)"
cursor = connection.cursor()
cursor.execute(sql_string, (665, 330))

请注意,使用 Python db-api 的引用功能始终是一种很好的做法,就像我在此处所做的那样,以避免 SQL 注入(inject)攻击。

关于sql - 如何使用原始 SQL 插入外键字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3950124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com