SQLite - 添加列并使用另一个 table 更新它们
SQLite - adding columns and updating them using another table
对 SQL 来说是全新的,如果此代码有偏差,我们深表歉意。尝试向 SQLite 中的现有 table(物种)添加两个新字段。然后更新 table,方法是使用键“Id”根据来自另一个 table(临时)的值设置新字段的值。请参阅下面的代码。使用 SQLite v 3.33.0.
ALTER TABLE Species
ADD Name1 TEXT, ScientificName1 TEXT;
UPDATE Species
SET Name1 = temp.Name
,ScientificName1 = temp.ScientificName
FROM temp
WHERE temp.Id = Species.Id;
ALTER TABLE
语句不支持多列,因此您必须在 2 个单独的语句中添加它们:
ALTER TABLE Species ADD Name1 TEXT;
ALTER TABLE Species ADD ScientificName1 TEXT;
如果您的 SQLite 版本是 3.33.0+,您的 UPDATE
语句是正确的。
对于以前的版本 (3.15.0+),您可以使用 ROW VALUES
:
UPDATE Species
SET (Name1, ScientificName1) = (
SELECT temp.Name, temp.ScientificName
FROM temp
WHERE temp.Id = Species.Id
);
参见demo。
对 SQL 来说是全新的,如果此代码有偏差,我们深表歉意。尝试向 SQLite 中的现有 table(物种)添加两个新字段。然后更新 table,方法是使用键“Id”根据来自另一个 table(临时)的值设置新字段的值。请参阅下面的代码。使用 SQLite v 3.33.0.
ALTER TABLE Species
ADD Name1 TEXT, ScientificName1 TEXT;
UPDATE Species
SET Name1 = temp.Name
,ScientificName1 = temp.ScientificName
FROM temp
WHERE temp.Id = Species.Id;
ALTER TABLE
语句不支持多列,因此您必须在 2 个单独的语句中添加它们:
ALTER TABLE Species ADD Name1 TEXT;
ALTER TABLE Species ADD ScientificName1 TEXT;
如果您的 SQLite 版本是 3.33.0+,您的 UPDATE
语句是正确的。
对于以前的版本 (3.15.0+),您可以使用 ROW VALUES
:
UPDATE Species
SET (Name1, ScientificName1) = (
SELECT temp.Name, temp.ScientificName
FROM temp
WHERE temp.Id = Species.Id
);
参见demo。