🗺️

[SQL]AUTO_INCREMENTとは(備忘録)

2023/08/15に公開

1.AUTO_INCREMENTとは

①.AUTO_INCREMENTとは、指定したカラムにデータを追加すると、一意の値が自動的に発番される機能です。
②.AUTO_INCREMENTは、浮動小数点数型・整数型のカラムに対して設定可能です。
③.AUTO_INCREMENTを設定したカラムにPRIMARY KEYを設定するのが、一般的な使用方法です。

2.サンプルプログラム

〇サンプルプログラム1

Sample_1.sql
CREATE TABLE students (
	-- idカラムにAUTO_INCREMENTを設定
	id INT AUTO_INCREMENT NOT NULL,
	name VARCHAR(10) NOT NULL,
	-- idカラムに主キーを設定
	PRIMARY KEY (id)
);
-- 設定したカラムの情報を取得
SHOW COLUMNS FROM students;

-- データ登録
INSERT INTO students (name)
VALUES ('鈴木'),('田中');

-- データを取得
SELECT * FROM students;

〇サンプルプログラム1の結果
取得したカラムの情報です。
idカラムにExtraにauto_incrementが表示されています。

Field Type Null Key Default Extra
id int NO PRI NULL auto_increment
name varchar(10) NO NULL

データ取得結果です。
idカラムに値が連番で自動的に登録されていることが確認できました。

id name
1 鈴木
2 田中

〇サンプルプログラム2

Sample_2.sql
CREATE TABLE students (
    id INT AUTO_INCREMENT NOT NULL,
    name VARCHAR(10) NOT NULL,
    PRIMARY KEY (id)
);

-- データ登録
INSERT INTO students (name)
VALUES ('鈴木'),('田中'),('山田');

-- id=3のデータを削除
DELETE FROM students WHERE id = 3;

-- 1回目のデータ取得
SELECT * FROM students;
-- データ登録
INSERT INTO students (name) VALUE ('大谷');
-- 2回目のデータ取得
SELECT * FROM students;

〇サンプルプログラム2の結果
1回目のデータ取得結果です。

id name
1 鈴木
2 田中

2回目のデータ取得結果です。
削除後に追加登録したデータのidは4になっていました。

id name
1 鈴木
2 田中
4 大谷

〇サンプルプログラム3

Sample_3.sql
 CREATE TABLE students (
    id INT AUTO_INCREMENT NOT NULL,
    name VARCHAR(10) NOT NULL,
    PRIMARY KEY (id)
);
-- データ登録
INSERT INTO students(name)
VALUES ('鈴木'),('田中'),('山田');

-- id=3のデータを削除
DELETE FROM students WHERE id = 3;
-- 1回目のデータ取得
SELECT * FROM students;

-- 登録したいidを3に設定
ALTER TABLE students AUTO_INCREMENT = 3;
INSERT INTO students(name) VALUE ('大谷');
-- 2回目のデータ取得
SELECT * FROM students;

〇サンプルプログラム3の結果
1回目のデータ取得結果です。

id name
1 鈴木
2 田中

2回目のデータ取得結果です。
削除後に追加登録したデータのidは4になっていました。

id name
1 鈴木
2 田中
3 大谷

〇重要
登録するデータの番号をこちらで指定したい場合、ALTER文を使用します。

ALTER文
ALTER TABLE テーブル名 AUTO_INCREMENT = 登録するデータの番号;

3.参考

しがないOLのはじめてのMySQL(オートナンバーの設定)

4.その他

実行環境

Discussion