もともと複合外部/主キーで設計されたSQLiteデータベーススキーマに取り組んでおり、代わりに代理キーを使用するように変更しようとしています。サロゲートキーの新しい列を作成するのは簡単でしたが、サロゲートキーを親テーブルにリンクする必要があります。これを行うための最良の方法は何ですか。
古いスキーマの抜粋:
CREATE TABLE "parent" (
"caseid" TEXT NOT NULL,
"issueid" INTEGER NOT NULL,
"data" TEXT,
PRIMARY KEY("caseid", "issueid")
)
CREATE TABLE "child" (
"caseid" TEXT NOT NULL,
"issueid" INTEGER NOT NULL,
"childdata" TEXT,
FOREIGN KEY("caseid", "issueid") REFERENCES parent("caseid", "issueid")
)
新しいスキーマの抜粋:
CREATE TABLE "parent" (
"id" INTEGER PRIMARY KEY,
"caseid" TEXT NOT NULL,
"issueid" INTEGER NOT NULL,
"data" TEXT
)
CREATE TABLE "child" (
"id" INTEGER PRIMARY KEY,
"childdata" TEXT,
"parent_id" INTEGER REFERENCES parent("id")
)
私の質問は、新しい子テーブルに元の子テーブルのデータを入力した後、「parent_id」フィールドに入力するにはどうすればよいですか。これは、複合外部キーではなく代理キーになりました。SQLコマンドとしてこれを行う簡単な方法はありますか?