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

自動インクリメントを設定し忘れた場合はどうなりますか?後でMySQLで設定できますか?


はい、後でALTERテーブルを使用して自動インクリメントを設定できます。まず、テーブルを作成しましょう。ご覧のとおり、ここでは自動インクリメントを設定していません-

mysql> create table forgetToSetAutoIncrementDemo
   -> (
   -> StudentId int,
   -> StudentName varchar(30)
   -> );
Query OK, 0 rows affected (1.17 sec)

ここで、テーブルの説明を確認します。auto_increment列はありません-

mysql> desc forgetToSetAutoIncrementDemo;

これにより、次の出力が生成されます-

+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| StudentId   | int(11)     | YES  |     | NULL    |       |
| StudentName | varchar(30) | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

以下は、列StudentId-

に自動インクリメントを設定するためのクエリです。
mysql> alter table forgetToSetAutoIncrementDemo modify column StudentId int NOT NULL
AUTO_INCREMENT PRIMARY KEY;
Query OK, 0 rows affected (2.12 sec)
Records: 0 Duplicates: 0 Warnings: 0

ここで、テーブルの説明をもう一度確認します。auto_increment列が正常に追加されました-

mysql> desc forgetToSetAutoIncrementDemo;

これにより、次の出力が生成されます-

+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| StudentId   | int(11)     | NO   | PRI | NULL    | auto_increment |
| StudentName | varchar(30) | YES  |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

以下は、挿入コマンド-

を使用してテーブルにいくつかのレコードを挿入するためのクエリです。
mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Larry');
Query OK, 1 row affected (0.16 sec)

mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Chris');
Query OK, 1 row affected (0.13 sec)

mysql> insert into forgetToSetAutoIncrementDemo(StudentName) values('Robert');
Query OK, 1 row affected (0.17 sec)

以下は、selectステートメントを使用してテーブルのすべてのレコードを表示するためのクエリです-

mysql> select * from forgetToSetAutoIncrementDemo;

これにより、StudentIDをauto_increment-

として表示する次の出力が生成されます。
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 1         | Larry       |
| 2         | Chris       |
| 3         | Robert      |
+-----------+-------------+
3 rows in set (0.00 sec)

  1. MySQLでZEROFILLを使用してカスタム自動インクリメントを設定する

    まず、テーブルを作成しましょう。ここ。 UserId列にZEROFILLとAUTO_INCREMENTを設定しました mysql> create table DemoTable1831      (      UserId int(7) zerofill auto_increment,      PRIMARY KEY(UserId)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつか

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

    AUTO_INCREMENT属性は、新しい行の一意のIDを生成するために使用されます。列が「NOTNULL」として宣言されている場合、その列にNULLを割り当てて、一連の数字を生成することができます。 AUTO_INCREMENT列に値が挿入されると、列はその値に設定され、シーケンスもリセットされるため、最大の列値から順番に値が自動的に生成されます。 既存の「AUTO_INCREMENT」列を更新して、「AUTO_INCREMENT」シーケンスもリセットできます。最新の自動生成された「AUTO_INCREMENT;値は、SQLの「LAST_INSERT_ID()」関数を使用するか、C AP