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

MySQLAUTO_INCREMENTと例


ATUO_INCREMENTがどのように機能するかを理解しましょう-

AUTO_INCREMENT属性は、新しい行の一意のIDを生成するために使用されます。このステートメントがどのように機能するかを見てみましょう。その前に、以下のクエリを検討してください-

クエリ

CREATE TABLE tableName (
   id MEDIUMINT NOT NULL AUTO_INCREMENT,
   name CHAR(30) NOT NULL,
   PRIMARY KEY (id)
);
INSERT INTO tableName (name) VALUES
(‘val1’),('val2'),('val3'),
('val4');

SELECT * FROM tableName;

出力

+----+---------+
| id | name    |
+----+---------+
| 1  | val1    |
| 2  | val2    |
| 3  | val3    |
| 4  | val4    |
+----+---------+

上記のクエリでは、「AUTO_INCREMENT」列に値が指定されていないため、MySQLは一連の番号を「id」列に自動的に割り当てました。数列が0から始まるように、値0を明示的に割り当てることもできます。これは、「NO AUTOVALUEONZERO」SQLモードが有効になっていない場合にのみ実行できます。

  • 列が「NOTNULL」として宣言されている場合、その列にNULLを割り当てて、一連の数字を生成することができます。

  • AUTO_INCREMENT列に値が挿入されると、列はその値に設定され、シーケンスもリセットされるため、最大の列値から順番に値が自動的に生成されます。

  • 既存の「AUTO_INCREMENT」列を更新して、「AUTO_INCREMENT」シーケンスもリセットできます。

  • 最新の自動生成された「AUTO_INCREMENT;値は、SQLの「LAST_INSERT_ID()」関数を使用するか、C API関数である「mysql_insert_id()」を使用して取得できます。

  • これらの関数は接続固有です。つまり、それらの戻り値は、挿入操作を実行する他の接続の影響を受けません。

  • 「AUTO_INCREMENT」列の最小の整数データ型を使用できます。これは、ユーザーが必要とする最大シーケンス値を保持するのに十分な大きさです。

  • 列がデータ型の上限に達すると、一連の数値を生成するための別の試みが行われます。しかし、これは失敗します。

したがって、列AUTO_INCREMENT値でより広い範囲の値を許可できるように、可能であればUNSIGNED属性を使用してください。


  1. MySQLで列にNULL行を掛けますか?

    NULL行で乗算するには、COALESCE()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1842      (      NumberOfItems int,      Amount int      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTab

  2. MySQLでのAUTO_INCREMENT列の操作

    MySQLでAUTO_INCREMENT列を操作する方法を理解しましょう- AUTO_INCREMENT属性は、新しい行の一意のIDを生成するために使用されます。このステートメントがどのように機能するかを見てみましょう。その前に、以下のクエリを検討してください- クエリ CREATE TABLE tableName (    id MEDIUMINT NOT NULL AUTO_INCREMENT,    name CHAR(30) NOT NULL, PRIMARY KEY (id) ); INSERT INTO tableName (name