我有两张桌子:
framekanji当前每行中都有值'NULL',必须用汉字字符填充相同的framenum。例如,必须在表learnAlg中填写来自表Kanji的二(2,“二”),其中framenum=2。你知道吗
以下代码起作用:
c.execute("SELECT MAX(rowid) FROM learnAlg")
max = c.fetchone()[0]
for fn in range(max):
fn += 1
# !! Add framekanji !!
c.execute("UPDATE learnAlg SET framekanji=(SELECT character FROM Kanji WHERE "
"framenum = learnAlg.framenum) WHERE framenum = ?", (fn,))
我想知道是否也可以用类似于以下代码的代码更新1 go中的每一行:
c.executemany("UPDATE learnAlg SET framekanji=(SELECT character FROM Kanji WHERE "
"framenum = learnAlg.framenum) WHERE framenum = self")
但是,这会导致错误:“TypeError:函数正好接受2个参数(给定1个)”
executemany()
用于使用不同的参数集多次执行同一SQL语句。 在本例中,如果要单独更新每个帧,则将使用此选项:但是,要运行单个SQL语句,只需使用
execute()
。 SQL没有self
;可以使用framenum = framenum
,也可以省略WHERE子句:相关问题 更多 >
编程相关推荐