【发布时间】:2021-06-15 17:01:17
【问题描述】:
我正在尝试将一些数据从一个 SQLite 数据库插入到另一个数据库。我有两张桌子,分别称为“会员”和“出席”。应该发生的是,每次在成员表中添加(或删除)新成员时,还应将特定成员的名称和 ID 添加到出席表中。下图显示了我正在尝试做的事情。
所以我希望每个表中的 ID 和名称都相同(如箭头所示)。图片还显示成员表只有 5 个成员,随着时间的推移会添加更多成员,并且一些删除。
做了一些研究并认为这会起作用,但它返回 sqlite3.OperationalError: near "FROM": syntax error 错误。
CURSOR.execute('''
UPDATE
attendance
SET
id = members.id,
name = members.name
FROM
members
;''')
注意:有一个 CURSOR.execute,因为我这样做是 python 使用我老师要求的 sqlite3 库。
如果有人可以帮助我,那就太好了,谢谢。如果有什么不明白的,请告诉我。再次感谢
【问题讨论】:
-
从 SQLite 版本 3.33.0 开始支持 UPDATE FROM 语法。检查您的版本。
-
那不是好的数据库设计。您不应该在
attendance表中包含“名称”,因为您可以在members中查找它。这只是让事情不同步的机会。 -
INSERT INTO attendance SELECT id, name FROM members应该可以,但我不知道是什么版本。 -
如果这不是学校作业,您应该更改出勤设计并删除
name列。将id保留为members的外键。