【问题标题】:SQLite - adding columns and updating them using another tableSQLite - 添加列并使用另一个表更新它们
【发布时间】:2021-09-30 15:17:46
【问题描述】:

对 SQL 来说是全新的,如果这段代码有问题,我们深表歉意。尝试向 SQLite 中的现有表(物种)添加两个新字段。然后通过使用键“Id”根据另一个表 (temp) 中的值设置新字段的值来更新该表。请参阅下面的代码。使用 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;

【问题讨论】:

    标签: sql sqlite sql-update alter-table


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 1970-01-01
      • 2015-04-24
      • 2017-11-28
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多