我正在尝试将一些数据从一个 SQLite 数据库插入到另一个。我有 2 张表,分别称为“成员”和“出勤”。应该发生的是,每次向成员表中添加(或删除)新成员时,特定成员的姓名和 ID 也应添加到出勤表中。下图显示了我正在尝试做的事情。
所以我希望每个表中的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。
如果有人可以帮助我,那就太好了,谢谢。如果有什么不合理的,请告诉我。再次感谢
答案 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
) ;''')
以上查询只会插入考勤表中不存在的成员。