我正在尝试将数据从 CSV 文件导入数据库,但表 A 具有外键约束表 B。如果外键与主键匹配,我想要将数据插入 A 并更新 B 中的相关行B(并且没有其他问题);否则什么都不会发生。目前,我正在执行以下操作(稍微复杂一点的版本):
PRAGMA foreign_keys = ON;
for (row in b.csv){
INSERT INTO b
VALUES ("b_key", NULL, NULL);
}
for (row in a.csv){
INSERT OR IGNORE INTO a
VALUES ("a_key", "b_key", ...);
UPDATE OR IGNORE b
SET x = "X", y = "Y"
WHERE key = "b_key";
}
这样做的结果是最终 a.csv 将包含“b_key”不在表 b 中的行,此时整个批量更新将失败,并出现异常“外键约束失败”。任何人都知道我可以让它工作的简单(甚至不简单)方法吗?