私のデータベースには約23 000のレコードがあり、4921から4940まで20個の複製があります。 id
列(自動インクリメント)の値が正しくありません。だから私の質問:id
を4940より大きいレコードでid
の列を何千ものクエリを使わずに変更する方法はありますか?MySQLには、複数の行に対してカラムの値を20ずつ簡単に減らす方法があります
編集:私はタイトルが少し曖昧であることを実現....私は今それを編集します。
私のデータベースには約23 000のレコードがあり、4921から4940まで20個の複製があります。 id
列(自動インクリメント)の値が正しくありません。だから私の質問:id
を4940より大きいレコードでid
の列を何千ものクエリを使わずに変更する方法はありますか?MySQLには、複数の行に対してカラムの値を20ずつ簡単に減らす方法があります
編集:私はタイトルが少し曖昧であることを実現....私は今それを編集します。
なぜこのようにしたいのか、それが重要な理由はわかりません。
これは何らかの種類の「スマートキー」ですか?
私はあなたが簡単にそれを行うことができることを想像:
UPDATE table
SET key=key-20
WHERE key>4940;
ありがとうございます!私のチームのデータベースタスクに対処しなければならなかったので、しばらくしていました。私はSQLでやや錆びています。ありがとうございました :) – 2kan
あなたが変更されているキーが、既に他のレコードに関連している場合、これは非常に危険である可能性があります。既存の関係を破壊する可能性があります。ユニークであることが唯一の目的であるIDフィールドにギャップがあることは悪いことではありません。 2番目のIDは、ユニークである必要がある以外のIDに意味を追加することから始まり、問題を求めています。ですから、なぜ自動インクリメント値が正しくないのですか?レコードを削除する必要がある場合、時間が経つとどうなりますか?あなたはギャップを持っているでしょうから、それらも間違っていますか? – xQbert