【发布时间】:2011-03-09 08:32:58
【问题描述】:
我有一个使用外键的 SQLite 数据库,其中一些是自动递增的值。系统表示的“核心”数据例如是汽车。例如,外键链接到有关车轮和轮胎的信息,我希望从一个数据库中导出 n 辆汽车并导入到另一个数据库中。
我想通过编写一组可以被导入数据库加载的sql语句(即一堆插入语句)来做到这一点,但是转储数据中的键值不一定与现有数据匹配(可能某些键值有重复项)。
解决这个问题的最佳方法是什么?是否有一种简单或推荐的方法来编写导入脚本,以便删除对导出键值的依赖?
在下面的示例中,汽车索引将命名汽车。 CarPartColours 链接单个零件并带有颜色定义。 CarPartColours 中会有多行具有相同的 CarID。 当用户在 carindex 中选择一行时,我希望从 carpartcolours、carindex、parts 和 colors 中导出所有相关行,然后导入另一个数据库。该数据库中的颜色定义可能是重复的(另一个不同的问题)或具有与原始数据库中相同的键值。
CREATE TABLE carindex (
ID integer PRIMARY KEY NOT NULL,
Name varchar(50)
);
CREATE TABLE carpartcolours (
ID integer PRIMARY KEY AUTOINCREMENT NOT NULL,
CarID integer,
PartID integer,
ColourID integer,
/* Foreign keys */
FOREIGN KEY (CarID)
REFERENCES carindex(ID)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY (PartID)
REFERENCES parts(ID)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
FOREIGN KEY (ColourID)
REFERENCES colours(ID)
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE colours (
ID integer PRIMARY KEY AUTOINCREMENT NOT NULL,
Name varchar(50),
R real,
G real,
B real
);
CREATE TABLE parts (
ID integer PRIMARY KEY AUTOINCREMENT NOT NULL,
Name varchar(50),
Value real,
Manufacturer varchar(50)
);
【问题讨论】:
标签: sql sqlite export key dump