SQLite piliqiu2026-04-07 约 200 字 预计阅读 1 分钟 目录 常用操作 合并表数据 注意 本文最后更新于 2026-04-07,文中内容可能已过时。 常用操作 合并表数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 -- 1. 将 data1 数据库附加到当前连接 ATTACH DATABASE 'data1.db' AS db1; -- 注意:如果 data1 的完整路径不同,请替换为实际路径 -- 例如:ATTACH DATABASE 'C:/path/to/your/database/data1.db' AS db1; -- 2. 查看两个表的结构是否一致(可选) -- PRAGMA main.table_info(accounts); -- PRAGMA db1.table_info(accounts); -- 3. 合并数据(假设表结构完全相同) INSERT INTO main.accounts SELECT * FROM db1.accounts; -- 4. 如果表有自增主键,为避免冲突,可以排除主键列: -- 假设 accounts 表有 id, username, email, created_at 等列 -- INSERT INTO main.accounts (username, email, created_at, ...) -- SELECT username, email, created_at, ... FROM db1.accounts; -- 5. 如果只想合并不重复的数据,可以使用: -- INSERT OR IGNORE INTO main.accounts SELECT * FROM db1.accounts; -- 或 -- INSERT INTO main.accounts SELECT * FROM db1.accounts -- WHERE NOT EXISTS (SELECT 1 FROM main.accounts a2 WHERE a2.id = db1.accounts.id); -- 6. 分离附加的数据库 DETACH DATABASE db1; -- 7. 使用 rowid 作为排序基准,从 1 开始重新排序 accounts 表的 position 字段 UPDATE accounts SET position = (SELECT COUNT(*) FROM accounts a2 WHERE a2.rowid <= accounts.rowid);