user
テーブルがあり、主キーとしてvarchar
を使用しています。ここで、別の場所から、主キーのint
がvarchar
より優れているというパフォーマンスのヒントを得ました。
そこで、主キーをint
に変更します。そのために、別のuser
テーブルを作成し、前の主キー値以外のデータをそのテーブルにコピーしました。
これまでは問題ありません。
今私の問題は、以前の主キーを介してuser
テーブルに関連付けられている多くのテーブルがあることです。次に、他のテーブルの行を新しい主キー値に関連付けます。
これを行う方法?
主キーを変更する場合は、別のテーブルを作成する必要はありません。
私が実行するステップは次のとおりです。
例えば.
tblUser( oldID varchar(10)、 newID int、-新しい列が追加されました。この時点で、列にデータが入力されていると想定しています ... ) tblUserLogin( keyUser_oldID varchar(10)、 keyNewID int NULL、 ... ) 以下を実行します...私は最近SQL Serverで主に作業しているので、うまくいけば、この疑似コードが正しい考えを与えるでしょう。原則は、主要なテーブルベースのデータベースシステムに適用されます。 UPDATE tblUserLogin SET keyNewID =(SELECT newID FROM tblUser WHERE oldID = keyUser_oldID
これが一般的な原則であり、考慮すべき点がいくつかあります。
..データベースが重要なものに使用されているかどうかは言及しません。そうでない場合でも: