クライアントが自分で使用するデータベース管理ツールを構築していますが、主キー/一意キーの更新の可能性に対処するのに問題があります。したがって、更新用のデータが行ごとに PHP スクリプトによって渡されることを考えると、ここに私が思いついたものがあります (「すぐに」から「しばらくしてから」まで):
UPDATEの代わりにDELETE / INSERT(ひどい、私は今...):
DELETE FROM table WHERE unique_key=x; DELETE FROM table WHERE unique_key=y; INSERT INTO table VALUES (unique_key=y, field=record1), (unique_key=x, field=record2);
プライマリ/一意のキーを変更してから、変更した値に置き換えます。
UPDATE table SET unique_key=x* WHERE unique_key=x; UPDATE table SET unique_key=y* WHERE unique_key=y; UPDATE table SET unique_key=y WHERE unique_key=x*; UPDATE table SET unique_key=x WHERE unique_key=y*;
- 変更不可能な auto_increment フィールド「id」をすべてのテーブルに追加します。これは代理主キーとして機能します
今と同じように、すべてに「id」フィールドを追加しようとしています。その他のオプション?