MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのAUTO_INCREMENTとは?列への自動採番の設定方法と使い方

AUTO_INCREMENT(自動増分)とは、指定した列に対して値を自動的に割り当てるMySQLの機能です。通常、主キーとなるID列に設定し、レコードを挿入するたびに1ずつ増加する連番が自動的に振られます。

AUTO_INCREMENT付きテーブルの作成例

ここでは、その動作を説明するために「employees」テーブルを作成しました。以下のようにSHOW CREATE TABLE文でテーブル定義を確認できます。

mysql> SHOW CREATE TABLE employees\G

*************************** 1. row ***************************
Table: employees

Create Table: CREATE TABLE `employees` (
   `Id` int(11) NOT NULL AUTO_INCREMENT,
   `Name` varchar(35) DEFAULT NULL,
   PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

上記のテーブル定義を見ると、Id列にAUTO_INCREMENTオプションが設定されていることがわかります。なお、AUTO_INCREMENTを設定する列は、このようにPRIMARY KEYなどインデックスとして定義されている必要があります。

Nameフィールドだけに値を挿入してみる

この状態で、INSERT文ではNameフィールドにのみ値を指定します。すると、Idフィールドには自動的に連番の値が割り当てられます。

mysql> INSERT INTO employees(Name) VALUES('Ram');
Query OK, 1 row affected (0.09 sec)

mysql> INSERT INTO employees(Name) VALUES('Shyam');
Query OK, 1 row affected (0.03 sec)

mysql> INSERT INTO employees(Name) VALUES('Mohan');
Query OK, 1 row affected (0.04 sec)

mysql> INSERT INTO employees(Name) VALUES('Sohan');
Query OK, 1 row affected (0.04 sec)

挿入結果の確認

SELECT文でテーブルの中身を確認してみましょう。

mysql> SELECT * FROM employees;

+----+-------+
| Id | Name  |
+----+-------+
| 1  | Ram   |
| 2  | Shyam |
| 3  | Mohan |
| 4  | Sohan |
+----+-------+

4 rows in set (0.00 sec)

このように、Idフィールドには明示的に値を指定しなくても、1から始まる連番が自動的に採番されていることが確認できます。ユーザーIDや注文番号など、一意の番号が必要な列にAUTO_INCREMENTを活用することで、手動での番号管理の手間を省き、重複のないデータ管理が可能になります。

  1. JavaでJTableを特定の列基準でソートする方法

    JTableは、複雑なデータ構造を表形式で表示するためのJComponentクラスのサブクラスです。JTableコンポーネントはMVC(Model View Controller)デザインパターンに従って設計されており、データを行と列の形式で効率的に表示できます。 また、JTableはTableModelListener、TableColumnModelListener、ListSelectionListener、CellEditorListener、RowSorterListenerなど、さまざまなリスナーインターフェースを利用できる柔軟なコンポーネントです。 JTableを特定の列でソート

  2. Pythonでデータフレームの列を削除する方法をわかりやすく解説

    データフレームとはデータフレーム(DataFrame)とは、行と列という表形式でデータを格納する二次元データ構造です。SQLのデータテーブルやExcelのシートと同じようなイメージで捉えることができます。データフレームから特定の列を削除するには、いくつかの方法があります。本記事では、削除したい列名を引数として受け取り、その列を削除する「del」演算子の使い方を紹介します。サンプルコードimport pandas as pd my_data = {ab : pd.Series([1, 8, 7], index=[a, b, c]), cd : pd.Series([1, 2, 0, 9], in