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

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) 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列が1つだけあります。

  • AUTO_INCREMENT列にインデックスを付ける必要があります。これは、PRIMARYKEYまたはUNIQUEインデックスのいずれかである可能性があることを意味します。

  • AUTO_INCREMENT列には、NOTNULL制約が必要です。

  • AUTO_INCREMENT属性が列に設定されている場合、MySQLは自動的にNOTNULL制約を列に追加します。


  1. PHP / MySQLでTimeを使用していますか?

    PHP / MySQLで時間を処理するには、strtotime()関数を使用できます。同じ-のPHPコードは次のとおりです。 $timeValue='8:55 PM'; $changeTimeFormat = date('H:i:s', strtotime($timeValue)); echo("The change Format in 24 Hours="); echo($changeTimeFormat); PHPコードのスナップショットは次のとおりです- これが出力です。 これが元の時刻を取得するためのMySQLクエリ

  2. Javaを使用してMySQLテーブルの列数をカウントする

    これには、ResultSetMetaDataを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> StudentFirstName varchar(20),    -> StudentLastName varchar(20)    -> ); Query OK, 0 r