【问题标题】:Can I delete the record where cursor is pointing not using SQL?我可以不使用 SQL 删除光标指向的记录吗?
【发布时间】:2019-05-17 10:08:32
【问题描述】:
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()函数?

【问题讨论】:

    标签: python sql database pymysql


    【解决方案1】:

    游标指向SELECT 语句返回的一行数据,这与表中的实际行不同。

    SELECT 语句可以对其结果执行许多操作,例如将两个或多个表连接在一起、按特定字段对结果进行排序、仅收集特定字段的不同值等。

    在执行这些操作的过程中,并不总是可以保持指向特定表行的链接。您甚至可以使用SELECT AS 语句来获取不属于any 表的数据;删除这样的“行”显然是不可能的。

    您是否有不想使用 sql 删除行的原因?

    【讨论】:

    • 您的回答启发了我!我的问题是,除了select这种情况,为什么数据库连接器的设计者不创建一个指针(就像C或C++中的指针一样),所以我们可以使用指针来更新、删除等?
    猜你喜欢
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 2021-11-16
    • 2018-11-02
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多