1

假设我有一个元组(id、姓氏、名字、职业)的 SQL 表,其中所有值都是字符串(好的,显然id是一个键)。

我想将它转换为带有元组(id、lastid、firstid、occupid)的表,其中我只保留指向包含实际值的其他表的指针。如果示例域名和职业不是最适合此操作,我深表歉意。

显然,要创建将保存数据的其他表,我需要获取所有唯一的姓氏,并将它们插入到具有自动生成键的新表中。名字和职业也是如此。

完成之后,是否有一个单一的转换可以生成包含指针(呃,外键)的新表?

如果重要,实现使用 SQLite。

4

1 回答 1

1

假设您的姓/名和职业表是 Lnt、Fnt 和 Occ,每个表只有两列、一个 id 字段和一个值:

REPLACE INTO TheTable (last, first, occup)
SELECT Lnt.id, Fnt.id, Occ.id
FROM TheTable
JOIN Lnt ON (last=Lnt.value)
JOIN Fnt ON (first=Fnt.value)
JOIN Occ ON (occup=Occ.value)
于 2009-05-24T17:02:04.483 回答