MySQL の ID 列

Shraddha Paghdar 2023年6月20日
MySQL の ID 列

今日の投稿では、MySQL の IDENTITY 列に相当するものについて学びます。

MySQL のIDENTITYカラム

テーブルを作成するとき、データベースに一意の ID がない場合があるため、主キー の選択が難しくなります。 このような問題に対処するには、各レコードに手動で一意のキーを割り当てる必要がありますが、これには多くの場合時間がかかります。

Microsoft SQL Server では、テーブルの IDENTITY 列は値が自動的に増加する列です。 サーバーは IDENTITY 列の値を生成します。

ほとんどの場合、ユーザーは IDENTITY 列に値を追加できません。 テーブルの行は、IDENTITY 列を使用して一意に識別できます。

構文:

IDENTITY [( starting_value, increment_value)]

MySQL の AUTO_INCREMENT 関数は、Microsoft SQL Server の IDENTITY 列に相当します。 SQL Server では、IDENTITY は MySQL の AUTO_INCREMENT と同様に機能します。

MySQL では、AUTO_INCREMENT キーワードを使用して自動インクリメントを有効にします。 AUTO_INCREMENT はデフォルトで 1 から始まり、1 ずつ増加します。

構文:

CREATE TABLE table_name
(
   column_1 dataType AUTO_INCREMENT PRIMARY KEY,
   column_2 dataType,
);

この場合、table_name パラメータは、列を作成するテーブルの名前を指定します。 データベース エラーを防ぐには、MySQL 列が自動インクリメントの場合、主キー を入力する必要があります。

自動インクリメント列に値を指定しない場合、MySQL の AUTO_INCREMENT 関数は 1 から始まり、デフォルトで次の数値を 1 ずつ増やします。

前のアイデアをよりよく理解するために、次の例を検討してください。

CREATE TABLE Orders(
    order_id INT AUTO_INCREMENT,
    product_name VARCHAR(255),
    sku VARCHAR(255)
);
CREATE TABLE Orders(
    order_id INT AUTO_INCREMENT PRIMARY KEY,
    product_name VARCHAR(255),
    sku VARCHAR(255)
);

前の例では、order_idproduct_name、および SKU フィールドを持つ Orders テーブルを作成しました。 AUTO_INCREMENT を使用して order_id を自動生成します。

最初のケースでは、問題を特定するために主キーが指定されていません。 ただし、2 番目の例では、order_id がデータベースの主キーとして使用されています。

上記のコード行を、MySQL と互換性のあるブラウザーで実行します。 次の結果が表示されます。

ERROR 1075 (42000) − Incorrect table definition; there can be only one auto column and it must be defined as a key
Query OK, 0 rows affected (0.59 sec)
Shraddha Paghdar avatar Shraddha Paghdar avatar

Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.

LinkedIn

関連記事 - MySQL Column