ホームページ  >  記事  >  バックエンド開発  >  自己増加IDについて

自己増加IDについて

WBOY
WBOYオリジナル
2016-06-23 14:05:001093ブラウズ

データを削除して、1 2 3 4 を追加するたびに接続できなくなります。 。 。例えば、3番目のデータを削除すると124になります


ディスカッション(解決策)への返信

気にしないでください
主キー(通常はID)は、他に意味はありません

Mysql データベース テーブル 自動インクリメントされる主キー ID 番号がめちゃくちゃになっているため、再配置する必要があります。これを行うことができます

原則: 元の自動インクリメント ID を削除し、新しい自動インクリメント ID を再作成します。

1. 元の主キーを削除します:

ALTER TABLE `table_name` DROP `id`;

2. 新しい主キーフィールドを追加します:

ALTER TABLE `table_name` ADD `id` MEDIUMINT(8) NOT NULL FIRST;

3. 新しい主キーを設定します:

ALTER TABLE `table_name` MODIFY COLUMN `id` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id)

これは次のとおりです

InnoDB は自動インクリメントされる主キーの最大 ID メモリ内にあるので、現在の ID が 4 であれば、自動インクリメントされるレコードは 4 になります。データが削除されても、最大値はこれのままです。
しかし、mysql を再起動すると、挿入すると順序どおりになっていることがわかります。これはあなたが言ったことです。

テーブル ID は主キーを自動的にインクリメントします。4 つのレコードを挿入した後、2、3、4 つのレコードを削除し、Mysql を再起動して、別のレコードを挿入します。このレコードの ID は 2 ですか? 5 ですか?

また、これもご覧ください:
http://flandycheng.blog.51cto.com/855176/280224

この現象は正常です。

実際には、最初の 10 個のデータを取得したいだけです。どうすればよいですか? ? ?自動インクリメントを行わない書き方

select .... limit 10

主キーは単なる一意の識別子です。10 個の項目をクエリしたい場合は、limit を追加するだけです。クエリ ステートメントの最後に 10 を指定しないと、クエリ条件として id<10 を使用できません。その場合、検出されるアイテムの数は <=10 のみになります

制限と同じくらい良いものがあることがわかります。浮気

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。