MySQLで削除されたレコードの再使用を無効にします
-
21-08-2019 - |
質問
私は、MySQLデータベースと対話するWebアプリケーションを持っています。私はレコードを削除すると、そのスロットが、私は新しいレコードを作成し、次回に再利用されているようです。各レコードは、シーケンシャル主キーを持っているので、次のレコードは、新しいキーを持っています5を言うが、新しいレコードが最後に空になった場所に配置されますレコード番号2がために使用場所を、と言います。リストの一番下に直接追加された新しいレコードを持ってする方法はありますか? MySQLのクエリブラウザでそれを行う方法はありますおそらく?
これは、私が説明しています何の例です。
1 userName1 password1 2 userName2 password2 --> next operation will delete this record 3 userName3 password3 4 userName4 password4レコード#2がなくなっていたときに、
、次回私は新しい追加を行い、レコード#5は、数2点を取ります:
1 userName1 password1 5 userName5 password5 3 userName3 password3 4 userName4 password4
新しいレコードのみがリストの一番下に追加されるべきであることをMySQLの(おそらく、テーブルの作成時)を指示するための推奨方法はありますか?そう、我々は自動記録・再利用を無効にしたいと思います。
あなたの助けを事前に感謝 親切よろしく
解決
単に追加
ORDER BY id
クエリの最後に( "ID" は、テーブル内の1、2、3、4、5列である)
他のヒント
あなたは(あなたがそれは、MySQLで異なるのですかどうかを確認する必要がありますので、オラクルによるメモリからの書き込み)IDを設定するシーケンスを使用して、「挿入時に」トリガーを作成することができます:
create sequence table_name_id_seq order nocache cycle maxvalue 99999999;
create or replace trigger table_name_id
before insert on table_name for each row
begin
select table_name_id_seq.nextval
into :new.id
from dual
;
end;
InnoDBは、いくつかのレベルにあなたのためにそれを処理します。すべてのInnoDBテーブルは、クラスタ化された主キーのいくつかのフォームを持っており、それらは一般的に順次挿入を処理するためにセットアップされます。
あなたはInnoDBテーブルを使用して防止している場合は、、私はあなたがMyISAMテーブルがどのように機能するかを適応させるためにソースコードを変更するに頼る必要があるでしょうと信じています。私は、MySQLのため、他の「通常」のストレージエンジンで、特に慣れていないので、私は別の代替があるかどうかわからない。
DATE_ADDED BY日付フィールド(DATE_ADDED)とORDERを作成する方が良いでしょう。