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

MySQLで初期値と自動インクリメントを設定するにはどうすればよいですか?


AUTO_INCREMENT属性は、新しい行の一意のIDを生成するために使用されます。列が「NOTNULL」として宣言されている場合、その列にNULLを割り当てて、一連の数字を生成することができます。

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

既存の「AUTO_INCREMENT」列を更新して、「AUTO_INCREMENT」シーケンスもリセットできます。最新の自動生成された「AUTO_INCREMENT;値は、SQLの「LAST_INSERT_ID()」関数を使用するか、C API関数である「mysql_insert_id()」を使用して取得できます。

これらの関数は接続固有です。つまり、それらの戻り値は、挿入操作を実行する他の接続の影響を受けません。 「AUTO_INCREMENT」列の最小の整数データ型を使用できます。これは、ユーザーが必要とする最大シーケンス値を保持するのに十分な大きさです。

AUTO_INCREMENTのルール

AUTO_INCREMENT属性を使用するときは、次のルールに従う必要があります-

  • すべてのテーブルには、データ型が通常は整数であるAUTO_INCREMENT列が1つだけあります。

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

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

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

id列がテーブルに追加されていない場合は、次のステートメントを使用できます-

ALTER TABLE tableName ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (id);

id列がすでに存在する場合は、以下のコマンドを使用できます-

ALTER TABLE tableName AUTO_INCREMENT=specificValue;

ここで、tableNameは、「AUTO_INCREMENT」列を設定する必要があるテーブルfrの名前を指します。 「specificValue」は、「AUTO_INCREMENT」値がユーザーによって開始するように指定された整数を指します。


  1. MySQLのタイムスタンプ列に基づいてデータを選択し、値をブール値に設定します

    これには、IF()を使用します。まず、現在の日付を見てみましょう- mysql> select curdate(); +------------+ | curdate()  | +------------+ | 2019-12-10 | +------------+ 1 row in set (0.00 sec) まずテーブルを作成しましょう- mysql> create table DemoTable1890    (    DueDate timestamp    ); Query OK, 0 rows a

  2. MySQL列の値に000を追加するにはどうすればよいですか?

    000を追加するには、ZEROFILLの概念を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1913    (    Code int(4) ZEROFILL AUTO_INCREMENT NOT NULL,    PRIMARY KEY(Code)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into Dem