Migrate from MySQL to PostgreSQL on Linux (Kubuntu)というタイトルの質問を熱心に読みました。スターウォーズのテーマは、それをはるかに面白くしました. しかし、PostgreSQLのUnique Constraintsに関する問題に遭遇しました。
上記の投稿に厳密に従って、 sqltを使用して PostgreSQL DDL を作成しました。考えられるプロセスは、最初にスキーマ/テーブルを作成してからデータをインポートすることでした。ただし、72 個のテーブルのうち 57 個が使用していますCONSTRAINT "userid" UNIQUE ("user_id", "key")
テーブルの 1 つの例を次に示します。
CREATE TABLE "account_otherserviceinfo" (
"id" serial NOT NULL,
"user_id" bigint NOT NULL,
"key" character varying(50) NOT NULL,
"value" text NOT NULL,
PRIMARY KEY ("id"),
CONSTRAINT "user_id" UNIQUE ("user_id", "key")
);
pgadmin3 のクエリ ツールを使用してこれらのテーブルを PostgreSQL DB にコピーすると、次のエラーが発生します。
エラー: リレーション "user_id" は既に存在します SQL 状態: 42P07
このデータベース スキーマは私が設計したものではありません。私は移行プロセスを支援しているだけです。Unique Constraints に関するドキュメントを読むと、別のテーブルにある限り、同じ名前を使用しても問題ないようです。http://www.postgresql.org/docs/8.3/static/ddl-constraints.html . 私はこれを誤解していますか?
提案や指針をいただければ幸いです。
ありがとうございました!
PS: https://stackoverflow.com/users/59087/dave-jarvisとhttps://stackoverflow.com/users/26534/michael-trauschに感謝します ;-)