簡體   English   中英

Django over Postgresql:使用原始SQL插入和返回語句不起作用

[英]Django over Postgresql: using raw sql insert with returning statement not working

結合使用Django的Postgresql 9.3 + PostGIS,我試圖將記錄輸入到表中並返回給定的id,如下所示

def join(request):
    from django.db import connection, transaction
    cursor = connection.cursor()
    id = cursor.execute("insert into table1 values(DEFAULT, 'temp', null,-4, null,null, null, null, DEFAULT, 1,null,DEFAULT,DEFAULT, null) returning id")
    transaction.set_dirty()

    return HttpResponse(id)

這將返回None ,我如何獲得從sql查詢返回的id

from django.db import connection, transaction

def join(request):
    cursor = connection.cursor()
    id = cursor.execute("insert into table1 values(DEFAULT, 'temp', null,-4, null,null, null, null, DEFAULT, 1,null,DEFAULT,DEFAULT, null)")
    transaction.set_dirty()
    last_id = connection.insert_id()
    return HttpResponse(str(last_id))

您的數據庫后端是什么? 如果您使用sqlite3,

def join(request):
    from django.db import connection, transaction
    cursor = connection.cursor()
    cursor.execute("insert into table1 values(DEFAULT, 'temp', null,-4, null,null, null, null, DEFAULT, 1,null,DEFAULT,DEFAULT, null)")
    cursor.execute("SELECT last_insert_rowid() FROM table1")
    id = cursor.fetchone()[0]
    transaction.set_dirty()

    return HttpResponse(id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM