#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, который возвращает все модифицированные айдишники.
Комментариев нет:
Отправить комментарий