Могу ли я удалить запись, на которую указывает курсор, не используя SQL? - PullRequest
0 голосов
/ 17 декабря 2018
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='jd', charset='utf8')
cur = conn.cursor() 
sql = "select * from user where username = 'XXX'"
cur.execute(sql)

После выполнения этого фрагмента кода курсор должен указывать на выбранную мной запись.

Что я хочу сделать, это получить одну запись, обработать что-то с данными взапись, а затем обнаружение записи.

Я знаю, что в Python есть методы cur.fetchone(), cur.fetchall(). Я считаю, что курсор может извлекать запись, почему нет cur.deteleOne() или cur.delete_previousOne()функционировать?

1 Ответ

0 голосов
/ 17 декабря 2018

Курсор указывает на строку данных, возвращаемую оператором SELECT, что не совпадает с фактической строкой в ​​таблице.

Оператор SELECT может выполнять множество манипуляций над своими результатами,например, объединение двух или более таблиц, упорядочение результатов по определенному полю, сбор только отдельных значений для определенного поля и т. д.

В ходе выполнения этих манипуляций не всегда возможно сохранитьссылка на определенные строки таблицы.Вы даже можете использовать оператор SELECT AS для извлечения данных, которые не являются частью любой таблицы;удаление такой "строки" было бы явно невозможным.

Есть ли причина, по которой вы не хотите использовать sql для удаления строк?

...