如何将SQL数据表转换为指针表?

时间:2009-05-24 16:32:54

标签: sql sqlite rdbms

假设我有一个元组的SQL表(id,lastname,firstname,occup),其中所有值都是字符串(好的,显然 id 是一个键)。

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

显然要创建保存数据的其他表,我需要获取所有姓氏,唯一,并使用自动生成的密钥将它们插入到新表中。与名字和职业相同。

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

实施使用SQLite,如果重要的话。

1 个答案:

答案 0 :(得分: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)