1

すべての値が文字列であるタプル (id、姓、名、職業) の SQL テーブルがあるとします (わかりました、明らかにidがキーです)。

実際の値を含む他のテーブルへのポインターのみを保持するタプル (id、lastid、firstid、occupid) を持つテーブルに変換したいと考えています。名前と職業の例のドメインがこの操作に最適でない場合は、お詫び申し上げます。

明らかに、データを保持する他のテーブルを作成するには、一意のすべての姓を取得し、自動生成されたキーを使用してそれらを新しいテーブルに挿入する必要があります。名前や職業も同じです。

それを行った後、ポインター (つまり、外部キー) を含む新しいテーブルを生成できる単一の変換はありますか?

重要な場合、実装では SQLite を使用します。

4

1 に答える 1

1

姓名と職業のテーブルがLnt、Fnt、およびOccであり、それぞれにIDフィールドと値の2つの列があると仮定します。

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 に答える