Страницы

Поиск по вопросам

воскресенье, 12 января 2020 г.

Как узнать, выполнился INSERT или REPLACE?

#python #sql #python_3x #sqlite


Здравствуйте, участники сообщества, я столкнулся с проблемой, что мне нужно выполнить
sql запрос, примерно такой:  (python 3.5, sqlite)

cur = db.cursor()    

cur.execute("CREATE TABLE contact_info(ID INTEGER PRIMARY KEY autoincrement,"
    firstname VARCHAR(60), lastname VARCHAR(60), middlename VARCHAR(60),"
    "UNIQUE (firstname, lastname, middlename) ON CONFLICT REPLACE);")

cur.execute("INSERT OR REPLACE INTO contact_info VALUES"
            "((SELECT ID FROM contact_info WHERE firstname=? AND" 
            "lastname=? AND middlename=?), ?, ?, ?);",
            [fname, lname, mname, fname, lname, mname])


После чего мне нужно узнать, выполнился INSERT или REPLACE, но я не понимаю, как
это можно сделать, не написав дополнительных запросов.
И мне бы хотелось понять, как правильнее всего можно это узнать?
    


Ответы

Ответ 1



Например, так: SELECT last_insert_rowid() Без дополнительных запросов не выйдет, к сожалению. В PostgreSQL, например, есть RETURNING , который возвращает все модифицированные айдишники.

Комментариев нет:

Отправить комментарий