SQLite 将数据从一个表更新到另一个

时间:2021-06-15 17:01:17

标签: python sql sqlite

我正在尝试将一些数据从一个 SQLite 数据库插入到另一个。我有 2 张表,分别称为“成员”和“出勤”。应该发生的是,每次向成员表中添加(或删除)新成员时,特定成员的姓名和 ID 也应添加到出勤表中。下图显示了我正在尝试做的事情。

enter image description here

所以我希望每个表中的ID和名称都相同(如箭头所示)。图片也显示成员表只有5个成员,随着时间的推移会增加更多的成员和一些已删除。

做了一些研究并认为这可行,但它返回 sqlite3.OperationalError: near "FROM": syntax error 错误。

CURSOR.execute('''
    UPDATE 
        attendance
    SET    
        id = members.id,
        name = members.name
    FROM
        members
;''')

注意:有一个 CURSOR.execute 因为我这样做是按照我的老师的要求使用 sqlite3 库的 python。

如果有人可以帮助我,那就太好了,谢谢。如果有什么不合理的,请告诉我。再次感谢

1 个答案:

答案 0 :(得分:1)

不更新但您需要在出勤表中插入行,如下所示。

CURSOR.execute('''
    insert into attendance(id,name)
    select id ,name
    FROM members;''')

但我不认为您想每次都插入所有成员。您可以使用诸如 where id= 1 之类的 where 子句指定成员,或者您需要排除出勤表中已有的成员。您可以使用不存在,如下所示:

CURSOR.execute('''
        insert into attendance(id,name)
        select id ,name
        FROM members m 
        where not exists
                        (
                           select 1 from attendance where attendance.id=m.id
                        )    ;''')

以上查询只会插入考勤表中不存在的成员。

相关问题