1

最近アップグレードされた中規模のWebサイトに取り組んでいます。そのアップグレード中、データベースのセグメントは引き継がれませんでした。現在、新しいWebサイトは1か月以上運用されており、上司は不足しているビットを元に戻すことを望んでいます。

転送する必要のある、一意の自動割り当てされた主キーIDを持つテーブルのセットがいくつかあります。本番データベースにはすでに競合するキーがあるため、すべての行を挿入することはできません。

古いデータのすべての主キーにベース番号(おそらく10000)を追加することを考えています。これにより、新しいデータベースにすでに存在するものとの競合がないことが保証されますが、MySQLがどのように反応するかはわかりません。私はまた、これを達成するためのより良いおよび/または標準的な方法があるかどうか疑問に思っています。

データを挿入する最良の方法は何ですか?

4

1 に答える 1

0

私の質問へのコメントで述べたように、移行スクリプトがその方法です。これは、DBプラットフォームの実際の移行スクリプト、または1つのデータベースから読み取り、2番目のデータベースにデータを追加する選択した言語のスクリプトにすることができます。

私の質問で説明したような「ベース番号」を追加することは悪い考えであり、将来の転送中に両方のエラーにつながる可能性があります。

競合するIDを手動で解決することになりました。これは、以前の開発者が以前の移行中にすべてのIDにベース番号を追加しようとしたためであり、代わりにデータベースに不正な重複データを導入したためです。

于 2013-02-26T18:24:23.320 に答える