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

MySQL:テーブル作成クエリの「AUTO_INCREMENT =5」とは何ですか?


テーブル作成クエリのAUTO_INCREMENT=5は、最初のレコードが5から始まる、つまりデフォルト1ではないことを示します。値をAUTO_INCREMENTに設定しない場合、MySQLはデフォルトでは1。

構文は次のとおりです。

CREATE TABLE yourTableName
(
yourColumnName1 dataType NOT NULL AUTO_INCRMENT,
.
.
.
N,
PRIMARY KEY(yourColumnName1 )
)AUTO_INCREMENT=5;

上記の構文を理解するために、テーブルを作成しましょう。

ケース1- デフォルトの標準であるため、テーブルは1から自動インクリメントを開始します。

テーブルを作成するためのクエリは次のとおりです。

mysql> create table defaultAutoIncrementDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(10),
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (2.19 sec)

これで、insertコマンドを使用してテーブルにいくつかのレコードを挿入できます。クエリは次のとおりです。

mysql> insert into defaultAutoIncrementDemo(Name) values('John');
Query OK, 1 row affected (0.23 sec)
mysql> insert into defaultAutoIncrementDemo(Name) values('James');
Query OK, 1 row affected (0.14 sec)
mysql> insert into defaultAutoIncrementDemo(Name) values('Robert');
Query OK, 1 row affected (0.14 sec)
mysql> insert into defaultAutoIncrementDemo(Name) values('Mike');
Query OK, 1 row affected (0.13 sec)

これで、すべてのレコードを表示して、行が1から始まることを確認できます。クエリは次のとおりです。

mysql> select *from defaultAutoIncrementDemo;

出力は次のとおりです。

+----+--------+
| Id | Name   |
+----+--------+
|  1 | John   |
|  2 | James  |
|  3 | Robert |
|  4 | Mike   |
+----+--------+
4 rows in set (0.00 sec)

ケース2- auto_incrementを5から開始するためのクエリは次のとおりです。テーブルを作成するためのクエリは次のとおりです。

mysql> create table AutoIncrementStartsFrom5
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> Name varchar(10),
-> PRIMARY KEY(Id)
-> )AUTO_INCREMENT=5;
Query OK, 0 rows affected (1.00 sec)

次に、insertコマンドを使用してテーブルにいくつかのレコードを挿入します。クエリは次のとおりです。

mysql> insert into AutoIncrementStartsFrom5(Name) values('Larry');
Query OK, 1 row affected (0.15 sec)
mysql> insert into AutoIncrementStartsFrom5(Name) values('David');
Query OK, 1 row affected (0.20 sec)
mysql> insert into AutoIncrementStartsFrom5(Name) values('Bob');
Query OK, 1 row affected (0.13 sec)
mysql> insert into AutoIncrementStartsFrom5(Name) values('Ricky');
Query OK, 1 row affected (0.14 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです。

mysql> select *from AutoIncrementStartsFrom5;

出力は次のとおりです。

+----+-------+
| Id | Name |
+----+-------+
| 5 | Larry |
| 6 | David |
| 7 | Bob   |
| 8 | Ricky |
+----+-------+
4 rows in set (0.00 sec)

サンプル出力を見てください。auto_incrementは5から始まります。


  1. テーブルを動的に作成するMySQLクエリ?

    このために、ストアドプロシージャを使用できます。 2つの列を持つテーブルを動的に作成しましょう。つまり、StudentIdはintで、StudentNameはvarchar- mysql> DELIMITER $$ mysql> CREATE PROCEDURE creatingDynamicTableDemo(yourTableName VARCHAR(200))    -> BEGIN    ->    SET @name = yourTableName;    ->  

  2. MySQLで手動のAUTO_INCREMENT開始値を使用してテーブルクエリを作成しますか?

    まずテーブルを作成しましょう- mysql> create table DemoTable1907    (    UserId int NOT NULL AUTO_INCREMENT,    UserName varchar(20),    UserAge int,    UserCountryName varchar(20),    PRIMARY KEY(UserId)    )ENGINE=MyISAM,AUTO_INCREMENT=100;