我在我的数据库中定义了一个我希望在我的django应用程序中使用的序列。我假设我可以使用django文档中指定的原始sql方法:http://docs.djangoproject.com/en/1.1/topics/db/sql/。我的计划是执行以下SQL语句:
select nextval('winner')
其中获胜者是我想要获得下一个值的序列。这是我的代码:
from django.db import connection, transaction
.....
cursor = connection.cursor()
result = cursor.execute("select nextval('winner')")
结果始终是NoneType对象。这看起来非常简单明了,但我还没能做到这一点。我已经在交互式控制台中尝试了相同的结果。如果我查看connection.queries对象,我会看到:
{'time': '0.000', 'sql': "select nextval('winner')"}
生成的sql有效。有什么想法吗?
我正在使用:
答案 0 :(得分:5)
此代码可以使用:
//needs unit
答案 1 :(得分:4)
cursor.execute
始终返回无。
要从SQL语句中获取值,您必须使用cursor.fetchone()
(或fetchall()
)。
请参阅the documentation,但请注意,这实际上与Django无关,而是标准的Python SQL DB API。