【发布时间】:2011-03-31 16:08:22
【问题描述】:
我想将数据从 Table2 的 B 列复制到 Table1 的 A 列。 A 列的行为空,并且 Table1 中存在其他列已填充数据。所以我需要从 Table2 中获取整个 B 列,并将所有这些值插入到 Table1 的 A 列中。这两个表完全相同,只是 A 列根本没有值。
我如何在 sqlite3 中做到这一点?
【问题讨论】:
我想将数据从 Table2 的 B 列复制到 Table1 的 A 列。 A 列的行为空,并且 Table1 中存在其他列已填充数据。所以我需要从 Table2 中获取整个 B 列,并将所有这些值插入到 Table1 的 A 列中。这两个表完全相同,只是 A 列根本没有值。
我如何在 sqlite3 中做到这一点?
【问题讨论】:
用途:
INSERT INTO TABLE1
SELECT B,
NULL,
NULL,
NULL
FROM TABLE2
假设 TABLE1 列允许 NULL 值,则使用 NULL 作为无法从 TABLE2 填充的许多列的占位符。
【讨论】:
UPDATE TABLE1 SET A = (SELECT B FROM TABLE2 WHERE ...)
想一想,如果这些表确实相同,为什么需要其中两个?无论如何,您也可以这样做:
BEGIN;
DELETE FROM TABLE1;
INSERT INTO TABLE1 (A, col1, col2, ...) SELECT (B, col2, col2, ...) FROM TABLE2;
COMMIT;
【讨论】:
试试这个: 插入表 1 (A) 从表 2 中选择 B
【讨论】: