我有两个名为'Images'和'ImagesMSCV'的表。这两个表都包含两列'MicrosoftId'和'ImageId'。现在表格看起来像......
Images ImagesMSCV
MicrosoftId | ImageId MicrosoftId | ImageId
null 234 467 234
null 172 512 172
null 376 327 376
etc etc etc etc
所以我试图将'ImagesIC'列从'ImagesMSCV'复制到'Images'中的同一列。为此,我编写了以下SQLite语句......
UPDATE Images
SET MicrosoftId =
(SELECT MicrosoftId FROM ImagesMSCV
WHERE ImagesMSCV.ImageId = Images.ImageId);
...但是当我运行此语句时,我的数据库崩溃了。我不知道它有什么问题?
编辑:显然数据库只是停止响应,因为UPDATE花了这么长时间。知道如何提高性能吗?
答案 0 :(得分:0)
对于ImagesMSCV
表中的每一行,数据库必须在CREATE INDEX xxx ON ImagesMSCV(ImageId);
表中查找相应的行。每次这样的查找都需要全表扫描,除非该列上有索引:
only length-1 arrays can be converted to Python scalars