假设我有一个元组的SQL表(id,lastname,firstname,occup),其中所有值都是字符串(好的,显然 id 是一个键)。
我想将它转换为带有元组(id,lastid,firstid,occupid)的表,其中我只保留指向包含实际值的其他表的指针。如果名称和职业的示例域不是最适合此操作的,我道歉。
显然要创建保存数据的其他表,我需要获取所有姓氏,唯一,并使用自动生成的密钥将它们插入到新表中。与名字和职业相同。
完成后,是否有一个转换可以生成包含指针(er,外键)的新表?
实施使用SQLite,如果重要的话。
答案 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)