【问题标题】:Django/Postgres: Parameterized Queriy does not workDjango/Postgres:参数化查询不起作用
【发布时间】:2020-06-30 20:32:24
【问题描述】:

我刚刚开始深入研究 django 中的原始查询。

我正在尝试更改我的 postgres 中的架构名称,但我的 SQL 查询不起作用

这是我在django shell 中运行的代码:

>>> from django.db import connection
>>> cursor = connection.cursor()
>>> query = "ALTER SCHEMA %s RENAME TO %s;"
>>> data = ('thor', 'thor1')
>>> cursor.execute(query, data)

错误:

django.db.utils.ProgrammingError: syntax error at or near "'thor'"
LINE 1: ALTER SCHEMA 'thor' RENAME TO 'thor1';

我相信那些quotes 是我问题的根源。

知道我该怎么做吗?

【问题讨论】:

    标签: sql django postgresql


    【解决方案1】:

    此处不能使用查询参数,因为它们会添加 postgres 不支持的单引号。

    试试:

    >>> from django.db import connection
    >>> cursor = connection.cursor()
    >>> data = ('thor', 'thor1')
    >>> query = """ALTER SCHEMA %s RENAME TO %s;""" % data
    >>> cursor.execute(query)
    

    【讨论】:

    • 所以我可以在其他任何地方使用Parameterized queries
    • 这可能会有所帮助:docs.djangoproject.com/en/3.0/topics/db/sql
    • 谢谢,我稍后再调查。
    • 我能知道用例吗?您可以从请求中获取数据并使用此设置来实现您想要的结果。
    • 只是试验,没什么大不了的:D
    猜你喜欢
    • 1970-01-01
    • 2011-12-21
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多