Sql 尝试使用django从postgres DB中按顺序获取下一个值
我在数据库中定义了一个序列,我想在django应用程序中使用它。我假设我可以在这里使用django文档中指定的原始sql方法:。我的计划是执行以下SQL语句:Sql 尝试使用django从postgres DB中按顺序获取下一个值,sql,django,postgresql,Sql,Django,Postgresql,我在数据库中定义了一个序列,我想在django应用程序中使用它。我假设我可以在这里使用django文档中指定的原始sql方法:。我的计划是执行以下SQL语句: select nextval('winner') 其中winner是我想从中获取下一个值的序列。这是我的密码: from django.db import connection, transaction ..... cursor = connection.cursor() result = cursor.execute("sele
select nextval('winner')
其中winner是我想从中获取下一个值的序列。这是我的密码:
from django.db import connection, transaction
.....
cursor = connection.cursor()
result = cursor.execute("select nextval('winner')")
结果始终是非类型对象。这看起来非常简单和直接,但我一直无法做到这一点。我在交互式控制台中尝试过,结果也一样。如果我查看connection.querys对象,我会看到:
{'time': '0.000', 'sql': "select nextval('winner')"}
生成的sql是有效的。有什么想法吗
我正在使用:
- Django 1.1
- Python 2.6
- 博士后8.3
- Psycopg2
- MacOSX
游标。执行
始终返回无
要从SQL语句中获取值,必须使用cursor.fetchone()
(或fetchall()
)
请参见,尽管注意这实际上与Django没有任何关系,但它是标准的Python SQL DB API。此代码可以工作:
from django.db import connection, transaction
cursor = connection.cursor()
cursor.execute("select nextval('winner')")
result = cursor.fetchone()