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