mysqlの自己増加IDが連続していない場合はどうすればよいでしょうか?

WBOY
リリース: 2022-05-16 17:26:43
オリジナル
5853 人が閲覧しました

mysql では、「AUTO_INCREMENT」を使用して、不連続な自動インクリメント ID の問題を解決できます。「AUTO_INCREMENT」は、主キーの自動増加を設定するために使用されます。自動インクリメントを設定するだけで済みます。構文は「ALTER TABLE テーブル名 AUTO_INCREMENT=1」です。

mysqlの自己増加IDが連続していない場合はどうすればよいでしょうか?

このチュートリアルの動作環境: Windows10 システム、mysql8.0.22 バージョン、Dell G3 コンピューター。

mysql の自己増加 ID が連続的でない場合はどうすればよいですか?

MySQL は navicat に一意のフィールドを設定します。

Index (select field) >>>インデックス タイプ (UNIQUE)

テーブル内に一意のフィールドがあり、主キー ID がインクリメントされる場合、新しいデータを挿入するときに一意のフィールドがすでに存在しており、挿入は失敗します。

ただし、このとき、idが1つ増えて再度データが挿入される IDが不連続になる問題。

-- 実行後、挿入された ID が 1 に設定されることを示すのではなく、挿入された ID はテーブル内の最大 ID 値 1 に設定されます。

 ALTER TABLE `table` AUTO_INCREMENT =1;
ログイン後にコピー

挿入操作の前に上記の SQL ステートメントを追加し、挿入 ID を現在のテーブルに存在する ID 1 に設定します。

auto_increment は主キーの自動拡張に使用されます。 1 から始まり、最初のレコードを削除して 2 番目のホップ データを挿入すると、主キーの値は 1 ではなく 2 になります。

例:

create table `test`
(
`id` int(10) not null auto_increment, -- 表示自增列
`name` varchar(20) not null,
primary key(`id`)
)
ログイン後にコピー

auto_increment = 1; -- 自動インクリメントの開始サイズを示します -- このようにして、ID を指定してテーブル `test` を作成できます。自動インクリメント列

-- ステートメントを実行します insert into test (`name`) 値 ('name');

-- 次のようにデータ行を挿入できます。 'name'

拡張情報:

AUTO_INCREMENT を使用する場合は、次の点に注意する必要があります:

1. AUTO_INCREMENT はデータ列の属性であり、データ列にのみ適用されます。整数型のデータ列。

2. AUTO_INCREMENT 属性が設定されるデータ列は正のシーケンスである必要があるため、シーケンスの数を 2 倍にできるように、データ列を UNSIGNED として宣言する必要があります。

3. AUTO_INCREMENT データ列には、シリアル番号 (つまり、主キーまたは主キーの一部) の繰り返しを避けるために一意のインデックスが必要です。 AUTO_INCREMENT データ列には NOT NULL 属性が必要です。

4. AUTO_INCREMENT データ列の最大数は、列のデータ型によって異なります。たとえば、TINYINT データ列の最大数は 127 です。UNSIGNED が追加された場合、最大数は 255 です。上限に達すると、AUTO_INCREMENT は無効になります。

5. テーブル全体を削除すると、MySQL AUTO_INCREMENT は番号付けを 1 から再開します。

これは、テーブル全体の操作を実行するときに、MySQL (PHP との最適な組み合わせ) が実際にそのような最適化操作を実行するためです: 最初にデータ テーブル内のすべてのデータとインデックスを削除し、次にデータ テーブルを再構築します。

すべてのデータ行を削除し、シーケンス番号情報を保持したい場合は、MySQL の最適化を抑制する where を指定した delete コマンドを使用できます (PHP との最適な組み合わせ): delete from table_name where 1;

推奨される学習: mysql ビデオ チュートリアル

#

以上がmysqlの自己増加IDが連続していない場合はどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート