gpt4 book ai didi

database - 如何从 sqlite3 中附加数据库中的列进行更新?

转载 作者:搜寻专家 更新时间:2023-10-30 22:17:23 24 4
gpt4 key购买 nike

经过 4 小时的谷歌搜索和更多小时的实验后,我最后的希望是当我尝试以下操作时有人可以告诉我发生了什么:

    sqlite3 test1.sqlite
attach database 'test2.sqlite' as newDB;

这有效 - 没有错误消息,“.databases”显示“newDB”为 #2。 “newDB”和“main”具有完全相同的结构:相同的表、相同的列、相同的名称。简单的东西,比如

    select * from main.ztip;

    select * from newDB.ztip;

有效。 (“ztip”显然是两个数据库中的有效表名。)但是当我尝试做我需要做的事情时(为简单起见省略了 WHERE 子句)

    update main.ztip set zisfavorite=newDB.ztip.zisfavorite;

砰!找不到列“newDB.ztip.zisfavorite”。同样适用于

    update main.ztip set zisfavorite=newDB.zisfavorite;

我出于绝望尝试了一下。 (列名是唯一的。)

有人知道我想做的事是否可行以及如何实现吗?

提前致谢,汤姆

最佳答案

不太清楚您要在此处更新什么。

col_acol_b 是同一个表中的列时,您可以使用 UPDATE my_table SET col_a=col_b:这将更新设置值col_b 到每一行的 col_bcol_b 不仅仅是列名,在这种情况下它还与特定值相关联。

但是,在 update main.ztip set zisfavorite=newDB.ztip.zisfavorite 中,newDB.ztip.zisfavorite 表示一整列。没有理由知道您愿意使用哪一行和哪个值。

也许你应该使用类似的东西:

UPDATE main.ztip z1 SET zisfavorite=(SELECT z2.zisfavorite FROM newDB.ztip z2 WHERE z2.id=z1.id)

当然,where 子句的细节将取决于表的实际结构。确保它只返回一个值。

关于database - 如何从 sqlite3 中附加数据库中的列进行更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9769824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com