MySQL はリレーショナル データベースであり、世界で最も人気のあるリレーショナル データベースの 1 つです。MySQL では、自動インクリメントは、主キーに値を自動的に割り当て、各主キーが一意であることを保証できる非常に便利な機能です。ただし、多くの人が知らないのは、MySQL はデフォルトで 1 から増加し、これがすべての状況に必ずしも適しているわけではないということです。
MySQL では、テーブル作成時に自動インクリメントの開始値とステップ サイズを明示的に指定することで、自動インクリメントの初期値を変更できます。例えば:
CREATE TABLE example (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
) AUTO_INCREMENT=1000;
上の例では、自動インクリメントの初期値を明示的に 1000 に設定しています。これは、最初のレコードがサンプル テーブルに挿入されるとき、id の値がデフォルト値の 1 ではなく 1000 になることを意味します。
同様に、ステップ サイズを変更する場合は、次のようにすることができます。
CREATE TABLE example (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50)
) AUTO_INCREMENT=1 INCREMENT BY 2;
上の例では、ステップ サイズを 2 に変更しました。これは、最初のレコードがサンプル テーブルに挿入されると、id の値が 1、2 番目のレコードが 3、3 番目のレコードが 5 になることを意味します。
自動インクリメントIDの値を0から開始するように設定したい場合は、「AUTO_INCREMENT=0」を設定することもできます。
CREATE TABLE test_table (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
data VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=0;
つまり、MySQL の自己インクリメント機能は非常に便利で、一意の主キーを自動的に生成できます。ただし、場合によっては、自動インクリメントの初期値とステップ サイズのデフォルト値 1 を変更する必要がある場合があります。したがって、テーブルの作成時に明示的に指定するだけで済みます。